‡ 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