본문 바로가기

컴퓨터/백준 알고리즘

백준 알고리즘 - 7785번: 회사에 있는 사람 [Java]

문제: https://www.acmicpc.net/problem/7785

 

7785번: 회사에 있는 사람

첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는

www.acmicpc.net

1. 코드

import java.util.*;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		Set <String> set = new TreeSet<>();
		int N = sc.nextInt();
		
		while(N-- > 0) {
			String name = sc.next();
			String status = sc.next();
			
			if(status.equals("enter"))
				set.add(name);
			else
				set.remove(name);
		}
		List <String> list = new ArrayList<>(set);
		Collections.sort(list, Collections.reverseOrder());
		for(String s : list)
			System.out.println(s);
	}
}

2. 설명

enter일 때만 HashSet에 값을 저장하며 아니라면 제거한 뒤 List에 값을 저장한 후 내림차순으로 정렬합니다.