Algorithm

Algorithm - 빈도수 구하기

요가하는 개발자 2023. 1. 15. 23:55

🌴 문제


빈도수 구하기

  • 1 ~ 5 범위 안에 숫자가 배열에 중복되어 저장되어있다.
  • 1 ~ 5 까지의 숫자가 각각 몇 개씩 저장되어 있는지 출력하세요.

int[] numbers3 = {5, 3, 2, 1, 2, 4, 3, 3, 2, 1};

출력 예시

1 : 2개
2 : 3개
3 : 3개
4 : 1개
5 : 1개

 

 

 

 

 

 

 

 

🌴 문제 분석


int[] numbers3 = {5, 3, 2, 1, 2, 4, 3, 3, 2, 1};
		int[] freq = new int[6];  // 인덱스가 6인 이유는 인덱스가 0부터 시작하기 때문에 총 5개가 필요..// 빈도수 저장할 공간을 배열로 만든다.
								// 0번째 인덱스 칸은 버린다. 1~5까지 각각의 빈도수 저장.
		for (int i = 0; i < numbers3.length; i++) {   // 0 ~ 9
			freq[numbers3[i]]++;  // 아래 추가 설명.
		}
		for (int i = 1; i < freq.length; i++) {  // 1~5
			System.out.println(i + ":" + freq[i] +"개");
		}

 

0 1 2 3 4 5
  • 0은 버린다.  1 ~ 5까지의 빈도수를 저장하기 때문이다.
  • freq[ ] 안에 numbers3[i] 배열을 넣는다.
  • freq[numbers3[i]]++; - 예시 - freq[5] += 1;  // 5번째 칸에 1씩 증가해서 개수를 축적한다.