[백준] 13414 수강신청 - Java
해시 맵과 Comparator를 사용해 정렬을 구현하는 문제이다.
value값에 대해 정렬을 진행해줘야 하고, keySet에 대해 list를 만든 후 Comparator를 통해 정렬했다.
출력할 때 list의 사이즈가 입력받은 N보다 작다면, N을 list의 사이즈로 설정해줘야 한다.
(반례 : 2 2\n 00 00 )
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
HashMap<String, Integer> hm = new HashMap<>();
for(int i=0; i<M; i++){
String str = br.readLine();
hm.put(str, i);
}
ArrayList<String> list = new ArrayList<>(hm.keySet());
Collections.sort(list, new Comparator<String>(){
public int compare(String o1, String o2){
if(hm.get(o1) > hm.get(o2)){
return 1;
}else if(hm.get(o1) < hm.get(o2)){
return -1;
}else{
return 0;
}
}
});
if(list.size() <= N){
N = list.size();
}
for(int i=0; i<N; i++){
System.out.println(list.get(i));
}
}
}
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 2002 추월 - Java (0) | 2022.04.23 |
---|---|
[백준] 19583 싸이버개강총회 - Java (0) | 2022.04.23 |
[백준] 2910 빈도 정렬 - Java (0) | 2022.04.21 |
[백준] 9375 패션왕 신혜빈 - Java (0) | 2022.04.21 |
[백준] 9663 N-Queen - Java (0) | 2022.04.18 |
댓글
이 글 공유하기
다른 글
-
[백준] 2002 추월 - Java
[백준] 2002 추월 - Java
2022.04.23 -
[백준] 19583 싸이버개강총회 - Java
[백준] 19583 싸이버개강총회 - Java
2022.04.23 -
[백준] 2910 빈도 정렬 - Java
[백준] 2910 빈도 정렬 - Java
2022.04.21 -
[백준] 9375 패션왕 신혜빈 - Java
[백준] 9375 패션왕 신혜빈 - Java
2022.04.21