728x90
반응형
Silver IV
# 11723 집합
링크 : https://www.acmicpc.net/problem/11723
풀이
import sys
M = int(sys.stdin.readline())
S = [0] * 21
for i in range(M):
order = sys.stdin.readline().split()
if order[0] == 'add':
if S[int(order[1])] == 0:
S[int(order[1])] = 1
elif order[0] == 'remove':
if S[int(order[1])] == 1:
S[int(order[1])] = 0
elif order[0] == 'check':
if S[int(order[1])] == 1:
print(1)
else:
print(0)
elif order[0] == 'toggle':
if S[int(order[1])] == 1:
S[int(order[1])] = 0
else:
S[int(order[1])] = 1
elif order[0] == 'all':
S = [1] * 21
elif order[0] == 'empty':
S = [0] * 21
후기
- 0/1, True/False 등의 이분법으로 표기하는 것을 비트마스킹이라고 한다. 비트마스킹을 사용하면 컴퓨터에서 더 빠르게 수행되고, 더 적은 메모리를 사용하는 특징이 있다.
'Algorithm Study > Python' 카테고리의 다른 글
[백준 파이썬] # 9012 괄호 (0) | 2022.02.25 |
---|---|
[백준 파이썬] # 9375 패션왕 신해빈 (0) | 2022.02.25 |
[백준 파이썬] # 17219 비밀번호 찾기 (0) | 2022.02.24 |
[백준 파이썬] # 1764 듣보잡 (0) | 2022.02.24 |
[백준 파이썬] # 1676 팩토리얼 0의 개수 (0) | 2022.02.24 |