[문제]
https://www.acmicpc.net/problem/11723
[풀이]
문제는 쉬운데 출력 비교하는 게 어려웠음 ㅎㅎㅋ
집합이기 때문에 set 자료형을 사용하였고, set은 자동으로 중복이 없어지기 때문에 중복을 신경 쓰지 않아도 된다.
add, remove, check, toggle은 x라는 파라미터가 필요하지만 all과 empty는 파라미터가 없기 때문에 입력을 operation 변수에 한 번에 받고, operation이 'all'이나 'empty'이 아닌 경우, operation을 split() 함수로 분리해 파라미터 x와 구분해주었다.
집합 타입 메서드 중 특정 요소를 삭제하는 메서드가 두 개 있는데, remove() 함수는 지우고자 하는 element가 존재하지 않으면 KeyError가 발생하지만, discard() 함수는 지우려는 element가 존재하지 않아도 정상종료된다.
[코드]
import sys
if __name__ == '__main__':
s = set()
for _ in range(int(sys.stdin.readline())):
operation = sys.stdin.readline().strip()
if operation == 'all':
s = {i for i in range(1, 21)}
elif operation == 'empty':
s = set()
else:
operation, x = operation.split()
x = int(x)
if operation == 'add':
s.add(x)
elif operation == 'remove':
s.discard(x)
elif operation == 'check':
print(1 if x in s else 0)
elif operation == 'toggle':
if x in s:
s.remove(x)
else:
s.add(x)
'문제풀이 > BOJ' 카테고리의 다른 글
[Python] BOJ/백준 17626번 Four Squares (0) | 2021.08.31 |
---|---|
[Python] BOJ/백준 5430번 AC (0) | 2021.08.31 |
[Python] BOJ/백준 1107번 리모컨 (0) | 2021.08.30 |
[Python] BOJ/백준 2606번 바이러스 (0) | 2021.08.30 |
[Python] BOJ/백준 11279번 최대 힙 (0) | 2021.08.28 |