

문제를 살펴보면 간단하다 주어진 명령에 따라 그에 맞게 연산하는 코드를 작성하면 된다
주의할 점은 하나의 명령어(all, empty)인 경우도 있고 두 개의 명령어를 입력하는 경우도 있기 때문에
각각의 상황에 맞게 적절하게 처리되어야한다
그래서 일단 둘을 합쳐서 입력받고(input().strip().split()) 만약 입력받은 명령어의 길이가 1이라면
all 또는 empty라는 뜻이므로 그에 맞게 집합을 세팅해준다
만약 그게 아니라면 두번째 명령어(숫자)를 int형으로 변환하여 하나의 변수에 저장해주고
add, remove, check, toggle 각 명령어에 맞게 실행하도록 하면된다
여기서 주의할 점은 remove를 사용하게 되면 없는 숫자를 제거하려고할 때 오류가 발생하기 때문에
discard()를 사용해야 오류없이 숫자를 제거할 수 있다
import sys
input = sys.stdin.readline
A = set()
num = int(input())
for _ in range(num):
cmd = input().strip().split()
if len(cmd) == 1: # all 또는 empty
if cmd[0] == 'all':
A = set(range(1, 21))
else:
A = set()
else:
x = int(cmd[1])
if cmd[0] == 'add':
A.add(x)
elif cmd[0] == 'remove':
A.discard(x)
elif cmd[0] == 'check':
if x in A:
print(1)
else:
print(0)
elif cmd[0] == 'toggle':
if x in A:
A.discard(x)
else:
A.add(x)

cmd[0]을 해야하는데 cmd == 'all'로 적어서 꽤 오랜시간 수정을 반복하다가 겨우 찾아서 정답을 제출하였다
이런 문제 풀때는 항상 조심합시다...!!

'Baekjoon' 카테고리의 다른 글
| [Baekjoon]백준 2606 바이러스(실버 3) - Python (0) | 2025.04.09 |
|---|---|
| [Baekjoon]백준 1003 피보나치 함수(실버 3) - Python (0) | 2025.04.07 |
| [Baekjoon]백준 2696 중앙값 구하기(골드 2) - Python (0) | 2025.04.05 |
| [Baekjoon]백준 2075 N번째 큰 수(실버 3) - Python (0) | 2025.04.05 |
| [Baekjoon]백준 24480 알고리즘 수업 - 깊이 우선 탐색 2(실버 2) - Python (0) | 2025.03.22 |