import sys
n=int(sys.stdin.readline())
s = []
for i in range(n):
tmp=sys.stdin.readline().split()
if len(tmp)==1:
if tmp[0]=="all":
s=list(str(i) for i in range(1,21))
else:
s=[]
else:
e, num =tmp[0],tmp[1]
check=num in s
if (e=="check"):
print(1 if check else 0)
elif (e=="add" and check==False):
s.append(num)
elif (e=="remove" and check):
s.remove(num)
elif (e=="toggle"):
if (check):
s.remove(num)
else:
s.append(num)
언어제한으로 자바스크립트로 제출할 수 없어 python(PyPy3)으로 제출했다. 시간 제한이 조금 빡셌던 거 같다. 한번 틀렸었는데, all을 할 때 all
이라는 리스트를 미리 만들어두고 하니까 얕은 복사가 되어서 아래와 같은 예제를 수행했을 때 잘못된 답이 나왔다.
그래서 따로 리스트를 만들어주지 않고 list(str(i) for i in range(1,21))
이렇게 매번 리스트를 새로 만들어주는 식으로 수정했다.
input:
4
all
remove 1
all
check 1
answer: 1