java
백준 7785 자바 회사에 있는 사람 java
MiaCoder
2024. 1. 23. 11:27
역순으로 정렬하는 것이 중요한 문제이다.
컬랙션을 사용하여 HashMap를 정렬하는 방법을 알아보았다.
TreeMap라는 컬랙션을 이용하면 된다.
import java.util.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
//N개를 입력받음
HashMap<String, String> map = new HashMap<>();
StringTokenizer st;
//공백을 통한 입력을 위함
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
//HashMap은 공백을 통해 2개 씩 입력받는 것을 N번 반복하기 위해 for문에 생성
String key = st.nextToken();
String value = st.nextToken();
map.put(key, value);
//HashMap에 넣기
}
TreeMap<String, String> rMap = new TreeMap<>(Collections.reverseOrder());
rMap.putAll(map);
//TreeMap를 통한 정렬, Collection.reverseOrder()을 통해 역순으로 정렬한다.
Set<String> keys = rMap.keySet();
for (String key : keys) {
if (rMap.get(key).equals("enter")) {
System.out.println(key);
// 정렬된 값을 이용해 for-each문에서 value가 "enter"인 값만 출력한다.
}
}
br.close();
}
}