반응형
해쉬맵은 크기를 1늘릴때 약 두 배로 늘어난다는 글을 보고 크기를 정해주고 시작하였습니다.
빈도가 가장 많은게 두 개 이상일 경우를 위해서 정렬 후 최댓값을 구해준는 연산을 하였습니다.
import java.io.*;
import java.math.BigInteger;
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<BigInteger, Integer> map = new HashMap<>(n);
for (int i=0; i<n; i++){
BigInteger b = new BigInteger(br.readLine());
if (map.containsKey(b))
map.put(b, map.get(b)+1);
else map.put(b, 1);
}
System.out.print(map.entrySet()
.stream()
.sorted((entry1, entry2) -> entry1.getKey().compareTo(entry2.getKey()))
.max((entry1, entry2) -> entry1.getValue().compareTo(entry2.getValue()))
.get()
.getKey()
);
}
}
반응형
'Algorithm' 카테고리의 다른 글
백준 5903번 Moo 게임 [ Java ] (0) | 2021.01.13 |
---|---|
백준 2910번 빈도 정렬 [ Java ] (0) | 2021.01.12 |
백준 17478번 재귀함수가 뭔가요? [ Java ] (0) | 2021.01.11 |
백준 16505 별 [ Java ] (0) | 2021.01.09 |
백준 1074번 Z [ Java ] (0) | 2021.01.07 |