

실버 4인데도 정답비율이 엄청 낮아서 괜히 긴장했다.
Map에 대해 알고있으면 풀 수 있는 기본적인 문제다.
다만, 수의 범위를 조심해야 한다.
| 자료형 | 범위 |
|---|---|
| int | ~ |
| long | ~ |
주어진 범위는 int형을 넘기에 long형을 사용해야 한다.
풀이 순서는 다음과 같다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
// 입력부
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
HashMap<Long, Integer> map = new HashMap<>();
for (int i = 0; i < n; i++) {
long tmp = Long.parseLong(br.readLine());
map.put(tmp, map.getOrDefault(tmp, 0) + 1);
}
// 메인 알고리즘
ArrayList<Long> list = new ArrayList<>();
int count = 0;
// 개수가 제일 많은 것이 몇 개인지 세기
for (Map.Entry<Long, Integer> entry : map.entrySet()) {
if (entry.getValue() >= count) {
count = entry.getValue();
}
}
// 최대 개수와 같은 것 리스트에 넣기
for (Map.Entry<Long, Integer> entry : map.entrySet()) {
if (entry.getValue() == count) {
list.add(entry.getKey());
}
}
// 오름차순 정렬 -> 제일 앞이 제일 작은 것
Collections.sort(list);
System.out.println(list.get(0));
}
}

무난했다.