-
알고리즘 3번 - 최빈수 구하기알고리즘/알고리즘 기초 100제 2020. 6. 21. 23:19
2020-06-21
가장 많이 출현한 수를 출력하시오.
1 2 2 3 1 4 2 2 4 3 5 3 2
정답 : 2 (5회)
배열, For
* int형의 기본값이 0 이므로, int형 배열에서도 기본값이 0이라는걸 알았으면 좀더 코드가 단순화 되었을 것 같다.
다시 기억하자
자료형 기본값 int 0 boolean false char '\u0000' bute 0 short 0 long 0L float 0.0f double 0.0d or 0.0 참조형 변수 null public static void main(String[] args) { int[] arr = new int[]{1, 2, 2, 3, 1, 4, 2, 2, 4, 3, 5, 3, 2}; int[] answer = new int[100]; for(int i=1; i<6; i++){ int count = 0; for(int j=0; j<arr.length;j++){ if(i == arr[j]){ count +=1; } } answer[i-1] = count; } int maxValue = 0; int maxIdx = 0; for(int i=0; i<answer.length; i++){ int check = answer[i]; if(maxValue < check){ maxValue = check; maxIdx = i+1; } } System.out.println("정답 : " + maxIdx + "("+maxValue+"회)"); answer = new int[100]; // 강의 정답 // answer[3] = 5; 3번 숫자가 5번 출현했다는 의미. for(int i=0; i<10; i++) { answer[arr[i]]++; } int modeNum = 0; // 최빈수 int modeCnt = 0; // 최빈수 나온 횟수 for(int i=0; i<10; i++) { if(modeCnt < answer[i]) { modeCnt = answer[i]; modeNum = i; } } System.out.println("최빈수는 : " +modeNum + " cnt : " + modeCnt); }
출처 : https://www.youtube.com/watch?v=C-HElAETJVo&list=PLVoihNyHW4xkm_KJ8_N8X7F6EQP4uSRyR&index=4
'알고리즘 > 알고리즘 기초 100제' 카테고리의 다른 글
문제 6 - 최대공약수 (0) 2020.07.08 문제 5 - 대소문자 변환 (0) 2020.06.30 문제 4번 - 10진수를 2진수로 변환 (0) 2020.06.30 알고리즘 2번 - 피보나치 수열 출력 (0) 2020.06.21 1번 학생이름 저장 및 검색 (0) 2020.06.16