문제설명
소스코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set;
public class Main
{
public static void main(String[] args) throws Exception
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
HashMap <String, Integer> map = new HashMap<>();
ArrayList <String> list = new ArrayList<>();
int N = Integer.parseInt(br.readLine());
int maxNumber = 0;
for(int i = 0; i < N; ++i)
{
String str = br.readLine();
if(map.containsKey(str)) //해시맵에 이미 해당 키가 있다면
{
int tmp = map.get(str);
map.remove(str); //기존 맵을 제거
map.put(str, ++tmp); // 기존 키에 값이 1 추가된 맵을 추가
maxNumber = Math.max(maxNumber, tmp); //최대값 비교
}
else
{
map.put(str, 1);
maxNumber = Math.max(maxNumber, 1); //최대값 비교
}
}
Set<Entry<String, Integer>> entrySet = map.entrySet(); //엔트리 셋을 가져오는 Set 생성
Iterator<Entry<String, Integer>> entryIterator = entrySet.iterator(); //엔트리 셋을 반복하는 반복자 생성
while (entryIterator.hasNext()) {
Entry<String, Integer> entry = entryIterator.next();
int v = entry.getValue();
if(v == maxNumber) list.add(entry.getKey()); //최대 값이라면 리스트에 해당 키를 추가
}
Collections.sort(list); //리스트 정렬
System.out.println(list.get(0)); //정렬된 리스트중 가장 맨 앞(사전순) 출력
}
}
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
[Java] 백준 1026번 문제 (보물) (0) | 2023.09.21 |
---|---|
[Java] 백준 9663번 문제 (N-Queen) (0) | 2023.08.29 |
[Java] 백준 1920번 문제 (수 찾기) (0) | 2023.08.13 |
[Java] 백준 11728번 문제 (배열 합치기) (0) | 2023.08.12 |
[Java] 백준 11729번 문제 (하노이 탑 이동 순서) (0) | 2023.08.11 |