# BOJ07785 회사에 있는 사람
https://www.acmicpc.net/problem/7785 (opens new window)
상근이는 세계적인 소프트웨어 회사 기글에서 일한다. 이 회사의 가장 큰 특징은 자유로운 출퇴근 시간이다. 따라서, 직원들은 반드시 9시부터 6시까지 회사에 있지 않아도 된다.
각 직원은 자기가 원할 때 출근할 수 있고, 아무때나 퇴근할 수 있다.
상근이는 모든 사람의 출입카드 시스템의 로그를 가지고 있다. 이 로그는 어떤 사람이 회사에 들어왔는지, 나갔는지가 기록되어져 있다. 로그가 주어졌을 때, 현재 회사에 있는 모든 사람을 구한다.
# HashSet
HashSet을 활용하여 현재 회사에 남아있는 사람을 구한다.
HashSet<String> hashSet = new HashSet<>();
for (int i = 0; i < n; i++) {
String name = scanner.next();
String command = scanner.next();
if (hashSet.contains(name) && command.equals("leave")) {
hashSet.remove(name);
} else {
hashSet.add(name);
}
}
# 제출 코드
아래는 최종 제출 코드이다.
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
public class BOJ7785 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
HashSet<String> hashSet = new HashSet<>();
for (int i = 0; i < n; i++) {
String name = scanner.next();
String command = scanner.next();
if (hashSet.contains(name) && command.equals("leave")) {
hashSet.remove(name);
} else {
hashSet.add(name);
}
}
List<String> list = new ArrayList<>(hashSet);
list.sort(Comparator.reverseOrder());
StringBuilder stringBuilder = new StringBuilder();
for (String name : list) {
stringBuilder.append(name).append("\n");
}
System.out.println(stringBuilder);
}
}