백준 7785

Jb·2024년 3월 17일

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        //2차원 배열
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        Map<String, Boolean> login = new HashMap<>();
        for (int i = 0; i < n; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");
            String name = st.nextToken();
            String status = st.nextToken();
            //boolean으로 저장된다. 있으면 true 없으면 false
            login.put(name, status.equals("enter"));
        }
        List<String> names = new ArrayList<>();
        for (String name : login.keySet()) {
            if (login.get(name)) {
                names.add(name);
            }
        }
        //내림차순 정렬
        Collections.sort(names, Collections.reverseOrder());

        for (String name : names) {
            System.out.println(name);
        }
    }
}

로직

1.hashmap을 사용해야 한다.
hashMap<key, value> Value값을 boolean으로 처리하여 상태를 쉽게 판단할 수 있게 해준다
2.내림차순은 Collections의 메서드 sort를 활용하여 오름차순이 아닌 내림차순으로 한다.

느낀점.

아직 부족한게 많았고 한줄로 받는 법과 여러 줄을 받는 법에 대해 깊이 생각해본 시간이 되었던 것 같다.
더불어 boolean과 hashMap을 조금 더 능숙하게 쓸 수 있도록 연습하고 Collections에 대해 공부가 필요하다 느꼈다.

0개의 댓글