Problem Solving/Baekjoon
[백준] 11723 집합 - Implementation / Java
graycode
2024. 4. 21. 14:33
• 문제 링크
11723번: 집합
첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다.
www.acmicpc.net
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.HashSet;
import java.util.Set;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
Set<Integer> set = new HashSet<>();
int m = Integer.parseInt(br.readLine());
while (m-- > 0) {
StringTokenizer st = new StringTokenizer(br.readLine());
String s = st.nextToken();
switch (s) {
case "add":
set.add(Integer.parseInt(st.nextToken()));
break;
case "remove":
set.remove(Integer.parseInt(st.nextToken()));
break;
case "check":
sb.append(set.contains(Integer.parseInt(st.nextToken())) ? "1\n" : "0\n");
break;
case "toggle": {
int i = Integer.parseInt(st.nextToken());
if (set.contains(i)) set.remove(i);
else set.add(i);
break;
}
case "all": {
int i = 0;
while (i++ < 20) set.add(i);
break;
}
default:
set.clear();
break;
}
}
bw.write(sb.toString());
bw.flush();
}
}