
-Code
import java.io.*;
import java.util.*;
public class BOJ7785 {
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Set<String> inLog = new HashSet<>();
for (int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
String name = st.nextToken();
String comm = st.nextToken();
// enter면 저장 아니면 삭제
if (comm.equals("enter")) {
inLog.add(name);
} else {
inLog.remove(name);
}
}
// 순서 역순 출력
ArrayList<String> reverseLog = new ArrayList<>(inLog);
Collections.sort(reverseLog, Collections.reverseOrder());
for (String name : reverseLog) {
System.out.println(name);
}
br.close();
}
}
처음에는 ArrayList로 했는데 시간 초과로 틀렸습니다. 찾아보니 HashSet이 내부 해시 함수에 의해서 수가 많아도 O(1)의 시간 복잡도로 해결을 하기고 어차피 중복이 주어지지 않기 때문에 HashSet으로 해결했습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [백준/Java] 10816번 숫자 카드 2 (0) | 2025.12.24 |
|---|---|
| [백준/Java] 1620번 나는야 포켓몬 마스터 이다솜 (0) | 2025.12.24 |
| [백준/Java] 14425번 문자열 집합 (0) | 2025.12.24 |
| [백준/Java] 10815번 숫자 카드 (0) | 2025.12.24 |
| [백준/Java] 34945번 채플이 너무해 (0) | 2025.12.24 |