알고리즘

프로그래머스 - 최빈값 구하기

계양 꿀주먹 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로 순회하여 최대 빈도수를 비교해가면서 중복 여부를 보고 답을 반환합니다.