[Python] 11723 집합

7493 단어 solved.acsolved.ac

👉 11723 집합

[정답 코드]

import sys

s = []
m = int(sys.stdin.readline())
for i in range(m):
    command = sys.stdin.readline().rstrip()
    if command[0] == 'a': # add
        if command[1] == 'd':
            value = int(command[4:])
            if value not in s:
                s.append(value)
        if command[1] == 'l': # all
            s = [i for i in range(1, 21)]
    if command[0] == 'r': # remove
        value = int(command[7:])
        if value in s: 
            s.remove(value)
    if command[0] == 'c': #check
        value  = int(command[6:])
        if value in s:
            print(1)
        else:
            print(0)
    if command[0] == 't': #toggle
        value = int(command[7:])
        if value in s:
            s.remove(value)
        else:
            s.append(value)
    if command[0] == 'e': #empty
        s = []

[풀이]

  • 집합 원소 x의 조건이 1 <= x <= 20이기 때문에 시간 복잡도를 고려하지 않고, python list 내장 함수들로 구현하였다.

찾아보니 집합에 원소를 추가, 삭제하는 등의 표현에 있어 비트마스크가 굉장히 빠르다고 한다.

비트마스크
비트마스크 참조 2

좋은 웹페이지 즐겨찾기