[TIL] java 배열 값 빈도 수

빼곰·2022년 12월 28일
0

문제

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

[1,3,2,2,1,3,1,1] 각 숫자별 빈도 수는?
1--> 4회, 2-->2회, 3-->2회

<결과 출력>
1 번 숫자 --> 4번
2 번 숫자 --> 2번
3 번 숫자 --> 2번

배열 선언

int[] target = {1,3,3,2,1,1,3,0,1,2};

배열내 각 숫자들의 빈도 수 출력하기

  • 혼자 해보기
public class Java100_license_CosPattern1 {
	public static void main(String[] args) {
		
		//[1] : 배열 선언
		int[] target = {1,3,3,2,1,1,3,0,1,2};
		
		//[2] : 배열내 각 숫자들의 빈도 수 출력하기
		int[] cnt = new int[4];
		for(int x:target) {
			cnt[x]++;
		}
		for(int i=0;i<cnt.length;i++) {
			System.out.println(i+"  숫자 --> "+cnt[i]+"번");
		}
	}

}

출력결과>
0 번 숫자 --> 1번
1 번 숫자 --> 4번
2 번 숫자 --> 2번
3 번 숫자 --> 3번

-각 숫자들의 개수를 확인하여 카운트할 배열을 만들었다.
-인덱스 번호를 숫자로 매칭하여 인덱스에 카운트 될때마다 1씩 더해줬다.

  • 선생님 풀이 방법
    -빈 정수형 배열을 만들어놓고 초기값은 모두 0으로 셋팅한다.
    -Target배열내 숫자가 빈 배열의 인덱스로 적용되서 해당 인덱스의 ar배열 요소의 값을 1씩 증가시킨다.
    -이때, 빈 배열의 요소 갯수는 target배열내 숫자들의 종류 만큼 지정한다.

내가 했던 풀이랑 똑같은 풀이 방법이다....ㅎㅎ

public class Java100_license_CosPattern1 {
	public static void main(String[] args) {
		
		//[1] : 배열 선언
		int[] target = {1,3,3,2,1,1,3,0,1,2};
		
		//[2] : 배열내 각 숫자들의 빈도 수 출력하기
		int[] ar = new int[4];
	
		for(int i=0;i<target.length;i++) {
			ar[target[i]]++;
		}
		//[3] 출력
		for(int i=0;i<ar.length;i++)
			System.out.println(i+"번 숫자 -->"+ar[i]+"회");
	}

}
profile
개발 블로그

0개의 댓글