티스토리 뷰
728x90
https://www.acmicpc.net/problem/11723
- 문제 :
비어있는 공집합 S가 주어졌을 때, 아래 연산을 수행하는 프로그램을 작성하시오.
- add x: S에 x를 추가한다. (1 ≤ x ≤ 20) S에 x가 이미 있는 경우에는 연산을 무시한다.
- remove x: S에서 x를 제거한다. (1 ≤ x ≤ 20) S에 x가 없는 경우에는 연산을 무시한다.
- check x: S에 x가 있으면 1을, 없으면 0을 출력한다. (1 ≤ x ≤ 20)
- toggle x: S에 x가 있으면 x를 제거하고, 없으면 x를 추가한다. (1 ≤ x ≤ 20)
- all: S를 {1, 2, ..., 20} 으로 바꾼다.
- empty: S를 공집합으로 바꾼다.
- 풀이 :
주어진 명령을 set의 연산을 적절하게 사용하여
- 소스코드 :
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
30
31
|
import sys
input = sys.stdin.readline
if __name__ == "__main__":
result = set()
for _ in range(int(input())):
quest = input().strip().split()
if len(quest) == 1:
if quest[0] == 'empty':
result = set()
else:
result = set(i for i in range(1, 21))
else:
que,val = quest
val = int(val)
if que == 'add':
result.add(val)
elif que == 'check':
print(1 if int(quest[1]) in result else 0)
elif que == 'remove':
result.discard(val)
else:
if val in result:
result.discard(val)
else:
result.add(val)
|
cs |
320x100
'Algorithm > Implementation' 카테고리의 다른 글
(Python) - BOJ(19939번) : 박 터뜨리기 (0) | 2022.02.16 |
---|---|
(Python) - BOJ(12845번) : 모두의 마블 (0) | 2022.02.09 |
(Python) - BOJ(11659번) : 구간 합 구하기 4 (0) | 2022.02.09 |
(Python) - BOJ(1081번) : 합 (0) | 2022.02.06 |
(Python) - BOJ(10610번) : 30 (0) | 2022.02.04 |
댓글
© 2022 WonSeok, All rights reserved