코드

m = int(input())
s = set()

for _ in range(m):
    
    M = input().split()
    
    if M[0] == 'add':
        s.add(int(M[1]))
            
    # remove로 없는 원소 제거 시 에러 발생
    # discard는 에러 발생 안 함
    elif M[0] == 'remove':
    #   if int(M[1]) in s:
    #       s.remove(int(M[1]))
    #   else:
    #       pass
        s.discard(int(M[1]))
        
    elif M[0] == 'check':
    #   if int(M[1]) in s:
    #       print(1)
    #   else:
    #       print(0)
        print(1 if intM([1]) in s else 0)
            
    elif M[0] == 'toggle':
        if int(M[1]) in s:
            s.discard(int(M[1]))
        else:
            s.add(int(M[1]))
        
    elif M[0] == 'all':
        s = set(list(range(1,21)))
        
    elif M[0] == 'empty':
        s.clear()        

문제 해설

discard 메소드를 사용하여 remove를 사용할 때와 달리 존재하지 않는 원소 제거에 대한 코너 케이스를 처리해주지 않아도 되게 구현하여 좀 더 간결하게 코드를 작성할 수 있다.

댓글남기기