728x90
반응형
● 문제
https://www.acmicpc.net/problem/11723
● 풀이
공집합 S는 중복을 허용하지 않으므로 SET 자료구조를 이용하면 쉽게 해결할 수 있다.
각 문자열에 따라 동작을 다르게 수행하는 부분은 java7 부터 swtich 문에 비교대상에 문자열을 넣을 수 있다.
● 소스
package acmicpc;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.HashSet;
import java.util.Set;
public class acmicpc11723 {
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out))) {
int n = Integer.parseInt(reader.readLine());
Set<Integer> set = new HashSet<>();
for(int i=0; i<n; i++) {
String[] strArr = reader.readLine().split(" ");
int num = 0;
if(!"all".equals(strArr[0]) && !"empty".equals(strArr[0])) {
num = Integer.parseInt(strArr[1]);
}
switch (strArr[0]) {
case "add":
set.add(num);
break;
case "remove":
set.remove(num);
break;
case "check":
if(set.contains(num)) {
writer.append(String.valueOf(1)).append("\n");
} else {
writer.append(String.valueOf(0)).append("\n");
}
break;
case "toggle":
if(set.contains(num)) {
set.remove(num);
} else {
set.add(num);
}
break;
case "all":
for(int j=1; j<=20; j++) {
set.add(j);
}
break;
case "empty":
set.clear();
}
}
writer.flush();
} catch (Exception e) {}
}
}
728x90
반응형
'개발 > 백준알고리즘' 카테고리의 다른 글
1920번_수 찾기_java (0) | 2023.08.12 |
---|---|
23972번_악마의 제안_java (0) | 2023.08.06 |
15726번_이칙연산_java (0) | 2023.08.06 |
2563번_색종이_java (0) | 2022.12.11 |
5597번_과제 안 내신 분..?_java (0) | 2022.12.08 |