import sys
class Set:
def add(self,s,x):
s.add(x)
return s
def remove(self,s,x):
if x in s:
s.remove(x)
return s
def check(self,s,x):
if x in s:
print(1)
else:
print(0)
return s
def toggle(self,s,x):
if x in s:
self.remove(s,x)
else:
s.add(x)
return s
def all(self,s):
li =[]
for i in range(1,21):
li.append(i)
s.update(li)
return s
def empty(self,s):
s.clear()
return s
m = int(sys.stdin.readline().strip())
s = set([])
blankSet = Set()
for i in range(m):
line = list(map(str,sys.stdin.readline().strip().split()))
act = line[0]
if len(line)==2:
x = int(line[1])
if act == "add":
blankSet.add(s,x)
elif act == "remove":
blankSet.remove(s,x)
elif act == "check":
blankSet.check(s,x)
elif act == "toggle":
blankSet.toggle(s,x)
elif act == "all":
blankSet.all(s)
elif act == "empty":
blankSet.empty(s)
import sys
m = int(sys.stdin.readline().strip())
s = set([])
for i in range(m):
line = list(map(str,sys.stdin.readline().strip().split()))
act = line[0]
if len(line)==2:
x = int(line[1])
if act == "add":
s.add(x)
elif act == "remove":
s.discard(x)
elif act == "check":
print(1 if x in s else 0)
elif act == "toggle":
if x in s:
s.discard(x)
else:
s.add(x)
elif act == "all":
s = set(range(1,21))
elif act == "empty":
s.clear()
Set 클래스를 제거하고 메인 코드에서 직접 실행 =>
모든 작업에 대해 Set 클래스의 인스턴스를 생성할 필요가 없음으로 메모리 절약
remove() 메소드 대신 discard() 메소드를 사용
remove()는 KeyError를 발생 but discard() 는 에러 발생 x
act = line[0]
try:
x = int(line[1])
except IndexError:
x = None