https://www.acmicpc.net/problem/1302
1. 아이디어
HashMap을 활용해 책의 이름과 책의 개수를 다루면 간단하게 해결할 수 있다.
2. 문제풀이
key에 책의 이름, value에 책의 개수를 저장하는 HashMap을 만들었다. 이후 반복문으로 Entry를 꺼내서 value가 최대일 때 책의 이름을 얻는 방식으로 구현했고 value가 현재까지 찾은 최댓값과 동일하면 사전순으로 앞서는 것을 비교하기 위해 String의 compareTo 메서드를 활용했다.
3. 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < N; i++) {
String name = br.readLine();
map.put(name, map.getOrDefault(name, 0) + 1);
}
String ans = "";
int max = 0;
for (Map.Entry<String, Integer> entry : map.entrySet()) {
if (entry.getValue() > max) {
max = entry.getValue();
ans = entry.getKey();
} else if (entry.getValue() == max && ans.compareTo(entry.getKey()) > 0) {
ans = entry.getKey();
}
}
bw.write(ans);
bw.flush();
}
}
4. 후기
'코딩테스트 준비 > 백준' 카테고리의 다른 글
[백준] 14442번 - 벽 부수고 이동하기 2 [Java] (0) | 2025.01.20 |
---|---|
[백준] 2206번 - 벽 부수고 이동하기 [Java] (0) | 2025.01.20 |
[백준] 10821번 - 정수의 개수 [Java] (0) | 2025.01.20 |
[백준] 15653번 - 구슬 탈출 4 [Java] (1) | 2025.01.17 |
[백준] 15644번 - 구슬 탈출 3 [Java] (0) | 2025.01.17 |