https://www.acmicpc.net/problem/11723
문제 해결을 위한 과정
이 문제의 경우 알고리즘의 분류상 구현 문제로 문제에서 주어진 대로만 차분하게 구현하면 쉽게 해결할 수 있는 문제였습니다. 다만 실버 5 티어라는 난이도에 비해 정답률이 29%로 낮은 편인데 그 이유는 메모리 제한 때문이라 생각됩니다. 저 역시 pypy3로 풀었을 때 메모리 초과 판정을 받았고 pypy는 시간 복잡도가 좋은 대신 공간 복잡도 측면에서 불리하다는 사실을 알게 되어 python3으로 해결한 결과 정답 판정을 받을 수 있었습니다. 문제의 조건을 그대로 구현하면 되는 문제이기 때문에 해결방안은 따로 제시하지 않습니다.
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
import sys
input = sys.stdin.readline
n = int(input())
s = set()
for i in range(n):
a = input().split()
if a[0] == 'empty' or a[0] == 'all':
if a[0] == 'all':
s = set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20])
elif a[0] == 'empty':
s = set()
else:
b = int(a[1])
if a[0] == 'add':
s.add(b)
elif a[0] == 'check':
if s.intersection(set([b])):
print(1)
else:
print(0)
elif a[0] == 'remove':
if s.intersection(set([b])):
s.remove(b)
elif a[0] == 'toggle':
if s.intersection(set([b])):
s.remove(b)
else:
s.add(b)
|
cs |
'알고리즘 > 백준' 카테고리의 다른 글
백준 알고리즘 7576번: 토마토(Python) (0) | 2022.01.14 |
---|---|
백준 알고리즘 18870번: 좌표 압축(Python) (0) | 2022.01.12 |
백준 알고리즘 14499번: 주사위 굴리기(Python) (0) | 2022.01.10 |
백준 알고리즘 2941번: 크로아티아 알파벳(Python) (0) | 2022.01.07 |
백준 알고리즘 14659번: 한조서열정리하고옴ㅋㅋ(Python) (0) | 2022.01.06 |