https://www.acmicpc.net/problem/1302
[풀이]
- HashMap 자료구조의 key는 주어진 문자열을, 값은 해당하는 것의 개수를 넣는 형식으로 구현했습니다.
- 이후, Map의 Value를 확인하면서 가장 큰 값의 value를 얻었습니다.
- 다음으로, Map의 key를 정렬을 한 후, Map을 돌면서, 해당하는 maxValue를 가진 key값을 반환했습니다.
[코드]
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());
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < N; i++) {
String key = br.readLine();
map.put(key, map.getOrDefault(key, 0) + 1);
}
int maxValue = 0;
for (String key : map.keySet()) {
maxValue = Math.max(maxValue, map.get(key));
}
List<String> keyList = new ArrayList<>(map.keySet());
Collections.sort(keyList);
for (String str : keyList) {
if (maxValue == map.get(str)) {
System.out.println(str);
break;
}
}
}
}
'Algorithm > 백준' 카테고리의 다른 글
백준 1940번 : 주몽(Java) (0) | 2021.09.05 |
---|---|
백준 3273번 : 두 수의 합(Java) (0) | 2021.09.05 |
백준 10610번 : 30(Java) (0) | 2021.09.04 |
백준 5052번 : 전화번호 목록(Java) (0) | 2021.09.04 |
백준 2822번 : 점수 계산(Java) (0) | 2021.09.04 |