https://www.acmicpc.net/problem/11723
풀이
집합에 대한 메서드를 정리해 볼 수 있는 문제입니다. 심화느낌으로 discard() 와 remove()의 차이에 대해서 알 수 있습니다. remove()는 집합안에 삭제할 요소가 존재하지않으면 keyerror가 일어나지만 discard()는 삭제할 요소의 존재유무와 상관없이 에러가 일어나지않습니다.
# 11723번 집합
import sys
n = int(input())
a = set()
for _ in range(n):
order = sys.stdin.readline().rstrip().split()
do = order[0]
if len(order) < 2: # 입력값이 1개만 주어졌을 경우.
if do == "all": # 입력이 all일 경우
a = set(range(1,21))
else: # 입력이 empty일 경우
a = set()
else: # 입력값이 2개 주어졌을 경우
number = int(order[1])
if do == "add": # 입력이 add일 경우
a.add(number)
elif do == "remove": # 입력이 remove일 경우
a.discard(number)
elif do == "check": # 입력이 check일 경우
sys.stdout.write('1\n' if number in a else '0\n')
elif do == "toggle": # 입력이 toggle일 경우
if number in a:
a.remove(number)
else:
a.add(number)
출력결과
'백준 > 구현' 카테고리의 다른 글
[백준] 2751번 수 정렬하기 2 - 파이썬 (0) | 2022.07.16 |
---|---|
[백준] 17219번 비밀번호 찾기 - 파이썬 (0) | 2022.07.16 |
[백준] 1927번 최소 힙 - 파이썬 (0) | 2022.07.16 |
[백준] 1764번 듣보잡 - 파이썬 (0) | 2022.07.15 |
[백준] 4948번 베르트랑 공준 - 파이썬 (0) | 2022.07.15 |