백준 11723 - 집합 (파이썬)
Updated:
비트마스크를 이용해 풀었습니다.
비트 연산에 관해서는 한번 검색해보시는걸 추천드립니다.
import sys
n = int(sys.stdin.readline())
s = 0b0
all_one = 0b111111111111111111111
all_zero = 0b000000000000000000000
for i in range(n):
order = sys.stdin.readline().rstrip().split(" ")
if order[0] == "add":
s = s | (1 << int(order[-1]))
elif order[0] == "remove":
s = s & ~(1 << int(order[-1]))
elif order[0] == "check":
if s & (1 << int(order[-1])):
print(1)
else:
print(0)
elif order[0] == "toggle":
s = s ^ (1 << int(order[-1]))
elif order[0] == "all":
s = s | all_one
else:
s = s & all_zero