반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
집합 연산을 하는 문제입니다. 문제 유형은 비트마스킹으로, 비트 연산을 통해 집합 연산을 구현합니다.
2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학
시간제한 1.5초 / 메모리 제한 4MB이지만, 비트 연산을 하지 않더라도 풀 수 있습니다. 단순히 구현문제라고 생각하시고 푸시면 되겠습니다.
3. 코드
import sys
input = sys.stdin.readline
n = int(input())
S = [0]*21 # x는 1부터 20
for i in range(n):
operation = input().rstrip()
if operation == 'all': #1로 초기화
S = [1]*21
elif operation == 'empty': #0으로 초기화
S = [0]*21
else:
op, x = operation.split()
if op == 'add':
S[int(x)] = 1 #추가
elif op == 'remove':
S[int(x)] = 0 #제거
elif op == 'check':
print(S[int(x)]) #확인
elif op == 'toggle':
if S[int(x)] == 0:
S[int(x)] = 1 #0이면 1
else:
S[int(x)] = 0 #1이면 0
토글 같은 경우, not연산 같은 걸 쓰면 좋겠으나 if-else로도 통과합니다.
반응형
'Algorithm' 카테고리의 다른 글
[Algorithm] 메모해두고 불러와서 사용하는 동적 프로그래밍(DP) (0) | 2022.02.12 |
---|---|
[자료구조/해시] 백준 1620 나는야 포켓몬 마스터 이다솜 - Python (0) | 2022.02.12 |
[자료구조/해시] 백준 15829 Hashing - Python (0) | 2022.02.11 |
[Brute Force] 백준 18111 마인크래프트 - Python (0) | 2022.02.11 |
[구현/수학] 백준 2869 달팽이는 올라가고 싶다 - Python (0) | 2022.02.11 |
댓글