문제
나의 해답
import java.util.*;
class Solution {
public int solution(int[] array) {
Map<Integer, Integer> frequencyMap = new HashMap<>();
int maxFrequency = 0;
int answer = -1;
for (int num : array) {
frequencyMap.put(num, frequencyMap.getOrDefault(num, 0) + 1);
if (frequencyMap.get(num) > maxFrequency) {
maxFrequency = frequencyMap.get(num);
answer = num;
} else if (frequencyMap.get(num) == maxFrequency) {
answer = -1;
}
}
return answer;
}
}
해설
- 배열의 요소에 빈도를 계산하여 frequencyMap에 저장
- frequencyMap.getOrDefault(num, 0) + 1은 현재 숫자와 빈도를 증가
- 현재 숫자의 빈도가 최대 빈도보다 크면 maxFrequency , answer에 저장
- 최빈값이 여러 개일 경우 answer은 -1
Share article