문제
![](https://velog.velcdn.com/images%2Fcosmos%2Fpost%2Fd16dafec-2114-416e-b5cc-16148753ff7f%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-03-15%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%204.52.58.png)
풀이
비트마스킹
or 집합
으로 구현해야하는 문제이다.
- 이 문제는 python으로 풀거면 무조건 python으로 제출해야 한다 아니면 pypy는 실패가 뜨기 때문.
코드
import sys
input = sys.stdin.readline
def add(s, order):
s.add(int(order[1]))
def remove(s, order):
s.discard(int(order[1]))
def check(s, order):
if int(order[1]) in s:
print(1)
else:
print(0)
def toggle(s, order):
if int(order[1]) in s:
s.remove(int(order[1]))
else:
s.add(int(order[1]))
def all(s):
return {i for i in range(1, 21)}
def empty(s):
return set()
def solve(orders):
s = set()
for _ in range(m):
order = list(map(str, input().split()))
if order[0] == 'add':
add(s, order)
elif order[0] == 'remove':
remove(s, order)
elif order[0] == 'check':
check(s, order)
elif order[0] == 'toggle':
toggle(s, order)
elif order[0] == 'all':
s = all(s)
elif order[0] == "empty":
s = empty(s)
if __name__ == '__main__':
m = int(input())
solve(m)
결과
![](https://velog.velcdn.com/images%2Fcosmos%2Fpost%2F4a45fd8a-0348-4b43-9f57-03b9fd6a0308%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202022-03-15%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%204.50.57.png)
출처 & 깃허브
BOJ 11723
GITHUB