본문 바로가기

백준 문제풀기/JAVA

[백준 7758 JAVA 자바] 회사에 있는 사람

 

입력은

4
Baha enter
Askar enter
Baha leave
Artem enter

(이름) (동작) 으로 입력됩니다

 

한 줄에 입력되는 문자열 중

이름과 동작 부분을 분리해서

 

동작에 따라 잘 처리해줍시다

 

코드입니다

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        int n = Integer.parseInt(br.readLine());  // 입력 받을 줄의 수
        HashSet<String> set = new HashSet<>();
        
        for (int i = 0; i < n; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            
            String a = st.nextToken();
            String b = st.nextToken();
            
            if (b.equals("enter")) {
            	set.add(a);
            }else {
            	set.remove(a);
            }
        }
        
        ArrayList<String> list = new ArrayList<>(set);
        Collections.sort(list);
        Collections.reverse(list);
        
        for (String str : list) {
            System.out.println(str);
        }        
    }
}

이름을 사전 순의 역순으로 한 줄에 한 명씩 출력해야 하기에

Collections.reverse(); 를 했습니다