BOJ 11652 카드

문제

문제출저


풀이코드

  • 컬렉션 Map을 이용하고, 범위값만 유의해주면 크게 어렵지 않은 문제였는데,
    문제를 제대로 읽지않아 엄청많이 해맸다.
    가장 많은 정수가 여러가지라면, 작은것을 출력 이부분을 유의해서 조건절을 잘 나눠야한다!
		Map<Long, Integer> numCounter = new HashMap<>();

		int maxCnt = Integer.MIN_VALUE;
		long res = Long.MAX_VALUE;
		for (int i = 0; i < n; i++) {
			long num = Long.parseLong(br.readLine());
			int cnt = numCounter.getOrDefault(num, 0) + 1;
			if (cnt > maxCnt) {
				res = num;
				maxCnt = cnt;
			} else if (cnt == maxCnt && res > num) {
				res = num;
				maxCnt = cnt;
			}
			numCounter.put(num, cnt);
		}