https://www.acmicpc.net/problem/1302
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));
int n = Integer.parseInt(br.readLine());
Map<String, Integer> map = new HashMap<>(); // book, count
int max = 0;
for(int i=0; i<n; i++){
String book = br.readLine();
if(!map.containsKey(book)) map.put(book, 1); // map에 책이 포함되어있지 않다면 1로
else map.put(book, map.get(book) + 1); // 포함되어 있다면 1증가
max = Math.max(max, map.get(book)); // 최댓값 갱신
}
List<String> list = new ArrayList<>();
for(Map.Entry<String, Integer> entry : map.entrySet()){
if(entry.getValue() == max) list.add(entry.getKey()); // 빈도수 가장 높은 책들 리스트에 추가
}
Collections.sort(list); // 사전 순으로 정렬
System.out.print(list.get(0));
}
}
책 이름과 책의 갯수를 저장하기 위해 HashMap을 이용하였다.
entrySet()을 사용해 전체 map을 돌며 개수가 가장 많은 책 이름을 리스트에 추가하고,
Collections.sort를 이용해 사전 순으로 정렬한 후 가장 첫번째 책을 출력한다.
'ALGORITHM' 카테고리의 다른 글
[JAVA] 백준 14425번- 문자열 집합 (0) | 2022.06.18 |
---|---|
[Javascript] 알고리즘-문자열 압축 (0) | 2022.06.18 |
[Javascript] 프로그래머스- 탐욕법(Greedy)/ 체육복 (0) | 2022.03.11 |
[Javascript] 프로그래머스- 정렬 / H-Index (0) | 2022.03.05 |
[Javascript] 프로그래머스- 정렬 / 가장 큰 수 (0) | 2022.03.04 |