코딩테스트/lv0

[프로그래머스 코딩테스트] java Lv.0 최빈값 구하기

chantleman 2024. 8. 26. 09:41

    import java.util.*;
    class Solution {
        public int solution(int[] array) {
            int answer = 0;
            Map<Integer,Integer> map = new HashMap();

            for(int num:array)
            {
                int cnt=0;
                if(map.containsKey(num)) cnt=map.get(num);
                map.put(num,++cnt);
            }
            Iterator<Integer> it = map.keySet().iterator();

            int max=-1;

            while(it.hasNext())
            {
                int key = it.next();
                int value = map.get(key);
                if(value>max) 
                {
                    max=value;
                    answer=key;
                }
            }

            it = map.keySet().iterator();
            int cnt=0;
            while(it.hasNext())
            {
                int key = it.next();
                int value = map.get(key);
                if(value == max)  cnt++;

            }
            if(cnt!=1) return -1;
            return answer;
        }
    }