최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
class Solution {
public int solution(int[] array) {
int answer = 0;
return answer;
}
}
입출력 예 #1
입출력 예 #2
입출력 예 #3
import java.util.*;
class Solution {
public int solution(int[] array) {
int maxCount = 0; // 최빈값
int answer = 0;
Map<Integer, Integer> map = new HashMap<>(); // HashMap 선언 : new에서 타입 파라미터 생략가능
for (int number : array) {
int count = map.getOrDefault(number, 0) + 1;
if (count > maxCount) { // 최빈값이 1개 일 경우
maxCount = count;
answer = number;
} else if (count == maxCount) { // 최빈값이 여러개(2개 이상)일 경우
answer = -1;
}
map.put(number, count); // 값 추가 : number 키와 이와 매핑된 count 값을 추가한다
}
return answer;
}
}
for-each문
map.getOrDefault(number, 0) + 1;
참고 : (6) Map - ② HashMap - 예시 4 : getOrDefault(Object key, V DefaultValue) 메소드