‡ CODING TEST STUDY ‡
[JAVA] SWEA | 1204. [S/W 문제해결 기본] 1일차 - 최빈수 구하기
Trudy | 송연
2024. 11. 16. 15:53
문제
https://swexpertacademy.com/main/solvingProblem/solvingProblem.do
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
value값으로 HashMap 정렬하기
List<Integer> keyset = new ArrayList<>(map.keySet());
keyset.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return map.get(o1) - map.get(o2);
}
});
map의 keySet으로 list 만들어주고, 이걸로 Comparator을 사용해서 map의 value값으로 비교를 해주면 된다.
그럼 map의 value 값으로 정렬된 keySet을 확인해 볼 수 있다
최종 코드
import java.util.Scanner;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.TreeMap;
class Solution
{
public static void main(String args[]) throws Exception
{
for(int test_case = 1; test_case <= T; test_case++)
{
sc.next();
TreeMap<Integer, Integer> map = new TreeMap<>();
for(int i=0; i<1000; i++) {
int n = sc.nextInt();
map.put(n , map.getOrDefault(n, 0)+1);
}
List<Integer> keyset = new ArrayList<>(map.keySet());
keyset.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return map.get(o1) - map.get(o2);
}
});
// System.out.print(keyset);
System.out.printf("#%d %d \n", test_case, keyset.get(keyset.size()-1));
}
}
}
출처
https://velog.io/@dev-easy/Java-Map%EC%9D%84-Key-Value%EB%A1%9C-%EC%A0%95%EB%A0%AC%ED%95%98%EA%B8%B0