알고리즘
프로그래머스 - 최빈값 구하기
계양 꿀주먹
2024. 4. 6. 21:41
import java.util.*;
class Solution {
public int solution(int[] array) {
int answer = 0;
int frequency = 0; // 최대 빈도수
boolean overlap = false; // 중복여부
Map<Integer, Integer> map = new HashMap<>();
for(int num : array) {
if(!map.containsKey(num)) map.put(num, 1);
else {
int cnt = map.get(num);
map.put(num, cnt + 1);
}
}
for(int key : map.keySet()) {
if(frequency == map.get(key)) overlap = true;
if(frequency < map.get(key)) {
frequency = map.get(key);
overlap = false;
answer = key;
}
}
return overlap ? -1 : answer;
}
}
Map을 이용해 입력받은 배열을 순회하면서 key를 원소로, value를 빈도수로 저장합니다.
다시 Map을 key로 순회하여 최대 빈도수를 비교해가면서 중복 여부를 보고 답을 반환합니다.