본문 바로가기

Backend/Java

[인프런] 자격증, 배열, 빈도 수

예제로 공부하는 Java 100 문제풀이 Part.5

 

배열 내 숫자들의 각 빈도 수를 출력하는 코드를 구현하시오.

// [1, 3, 2, 2, 1, 3, 1, 1] 각 숫자별 빈도 수는?

// 1 --> 4회, 2 --> 2회, 3 --> 2회

이 문제는 자격증 관련 코딩 문제에서 많이 나오는 유형의 패턴으로써 자격증 외에서도 많이 쓰이는 패턴이다.

굉장히 많이 나오는 단골 패턴이므로 잘 숙지하고 여러번 타이핑 치면서 반복 연습을 해야만 한다.

문제가 "반장 선거의 득표 수" 등으로 나오기도 한다 --> 결국 빈도 수 묻는 패턴이다.

 

public class Java100_Ex50 {
	public static void main(String[] args) {
		
		//[1]: 배열 선언
		int[] target = {1,3,3,2,1,1,3,0,1,2};
		
		//[2]: 배열 내 각 숫자들의 빈도 수 출력하기
		//1 --> 빈 정수형 배열(ar)을 하나 만들어놓고 초깃값은 모두 0으로 셋팅한다.
		//2 --> target 배열 내 숫자가 빈 배열(ar)의 인덱스로 적용돼서 해당 인덱스의 ar 배열 요소의 값을 1씩 증가시킨다.
		//3 --> 이때, 빈 배열(ar)의 요소 갯수는 target 배열 내 숫자들의 종류만큼 지정한다.
		int[] ar = new int[4];
		
		for(int i = 0; i < target.length; i++)
			ar[target[i]]++;
		
		System.out.println(ar[0]);
		System.out.println(ar[1]);
		System.out.println(ar[2]);
		System.out.println(ar[3]);
	}
}