Dev.baelanche

[백준 11652] 카드 본문

Data Structure & Algorithm/PS - JAVA

[백준 11652] 카드

baelanche 2019. 7. 23. 21:16
반응형

 

카드에 들어갈 수 있는 숫자의 범위가 너무나도 커서 배열로 만들기엔 부적합하다.

 

Map을 만들어서 key에 카드의 값, value에 카드의 개수를 저장해서 정렬하는 방법으로 풀었다.

 

public class Main {
    
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        int n = Integer.parseInt(br.readLine());
        Map<Long, Integer> map = new HashMap<Long, Integer>();
        for(int i=0; i<n; i++) {
            long temp = Long.parseLong(br.readLine());
            if(map.containsKey(temp)) map.put(temp, map.get(temp) + 1);
            else map.put(temp, 1);
        }
        
        List<Map.Entry<Long, Integer>> list = new ArrayList<Map.Entry<Long, Integer>>(map.entrySet());
        Collections.sort(list, new Comparator<Map.Entry<Long, Integer>>() {
            public int compare(Map.Entry<Long, Integer> o1, Map.Entry<Long, Integer> o2) {
                if(o1.getValue() < o2.getValue()) return 1;
                else if(o1.getValue() > o2.getValue()) return -1;
                else {
                    if(o1.getKey() < o2.getKey()) return -1;
                    else if(o1.getKey() > o2.getKey()) return 1;
                }
                return 0;
            }
        });
        
        System.out.println(list.get(0).getKey());
    }
}
반응형
Comments