알고리즘

[백준, 자바, 11652번] 카드

hminor 2024. 10. 26. 14:58
반응형

풀이

  • 요즘은 단순 정수를 받고자 할 때 Scanner로 입력값을 받아서
  • nextInt() 이렇게 많이 사용했는데
  • 해당 문제에서 이렇게 풀고 제출하다보니 
  • inputmismatch 이런 에러가 나와서 찾아보니
  • nextInt()는 정수로 변환하려다 보니 에러가 발생한다는 것을 확인.
  • 그래서 기존 사용했던 BufferedReader로 받아 제출하니 성공
  • 알고리즘에 따른 해결 방법은 뭐 크게 없어서 패스

 

import java.io.*;
import java.util.Map;
import java.util.HashMap;
public class _11652 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        long[] result = {(long)Math.pow(2,62), 0};
        Map<Long, Integer> dic = new HashMap<>();

        for (int i=0; i<N; i++) {
            long num = Long.parseLong(br.readLine());
            if (!dic.containsKey(num)) dic.put(num, 1);
            else dic.put(num, dic.get(num)+1);

            if (dic.get(num) > result[1]) {
                result[0] = num;
                result[1] = dic.get(num);
            } else if (dic.get(num)==result[1] && result[0]>num) result[0] = num;
        }

        System.out.println(result[0]);
    }
}