✏️ 문제 설명
최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
✏️ code
📌 freqMap.put(n, freqMap.getOrDefault(n, 0)+1))
: freqMap에 n이라는 키가 존재한다면 그 값을, 없다면 0을 반환한 뒤 그 value에 횟수를 +1합니다.
📌 for (int key : freqMap.keySet()) {...}
: freqMap의 key를 하나씩 순회해, freqMap.get(key) == max와 같다면 count++, answer = key 합니다.
이후 count가 1보다 크다면 -1(최빈값이 여러개인 경우), 아니면 answer을 반환합니다.
import java.util.*;
import java.lang.Math;
class Solution {
public int solution(int[] array) {
HashMap<Integer, Integer> freqMap = new HashMap<>();
int max = 0;
int count = 0;
int answer = -1;
for (int n : array) {
freqMap.put(n, freqMap.getOrDefault(n, 0)+1);
max = Math.max(max, freqMap.get(n));
}
for (int key : freqMap.keySet()) {
if (freqMap.get(key) == max) {
count++;
answer = key;
}
}
return count > 1 ? -1 : answer;
}
}
반응형