Algorithm/Baekjoon

[Python] 11723. 집합

느낌표 공장장 2022. 1. 1. 20:48
m = int(sys.stdin.readline())    # 수행해야 하는 연산의 수
s = 0   # 비어있는 공집합 s
for i in range(m):
    command = sys.stdin.readline().split()
    if command[0] == 'all': # S를 {1, 2, ..., 20} 으로 바꾼다.
        s = (1 << 21) - 1   # 0b11111111111111111111
    elif command[0] == 'empty': # 공집합으로 바꾼다.
        s = 0
    else:
        command, n = command[0], int(command[1])    # 명령어, 숫자 x
        if command == 'add':    # n 추가
            s |= (1 << n)
        elif command == 'remove':   # n 제거
            s &= ~(1 << n)
        elif command == 'check':    # n이 있으면 1, 없으면 0 출력
            print(1 if s & (1 << n) else 0)
        elif command == 'toggle':   # n이 있으면 n 제거, 없으면 n 추가
            s ^= (1 << n)

 

'Algorithm > Baekjoon' 카테고리의 다른 글

[Python] 2346. 풍선 터뜨리기  (0) 2022.01.01
[Python] 9252. LCS2  (0) 2022.01.01
[Python] 1238. 파티  (0) 2022.01.01
[Python] 1504. 특정한 최단 경로  (0) 2021.12.16
[Python] 1244. 스위치 켜고 끄기  (0) 2021.12.16