본문 바로가기
java

백준 7785 자바 회사에 있는 사람 java

by MiaCoder 2024. 1. 23.

역순으로 정렬하는 것이 중요한 문제이다.

 

컬랙션을 사용하여 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();
    }
}