1. 문제와 예제
(문제 링크: https://www.acmicpc.net/problem/11723)
2. 전체 코드
import sys
input = sys.stdin.readline
# 입력 받기
M = int(input().rstrip()) # 연산의 수
S = set() # 집합
for _ in range(M):
sen = input().rstrip() # 연산
cmd = sen.split()[0] # 명령어
# all
if cmd == 'all':
S = ({(i+1) for i in range(20)})
# empty
elif cmd == 'empty':
S.clear()
else:
x = int(sen.split()[1]) # 숫자
# add x
if cmd == 'add':
S.add(x)
# remove x
elif cmd == 'remove':
S.discard(x) # 있으면 제거, 없으면 연산 무시
# check x
elif cmd == 'check':
if x in S: # x 있으면 1 출력
print(1)
else: # 없으면 0 출력
print(0)
# toggle x
elif cmd == 'toggle':
if x in S:
S.discard(x)
else:
S.add(x)
3. 코드 해설
구현해야 하는 6가지 연산을 하나씩 작성해나가면 된다. 'remove x'에서 x가 S에 없을 경우도 생각해야 하기 때문에 'S.remove(x)' 대신 'S.discard(x)'를 사용해야 한다.
'백준' 카테고리의 다른 글
[백준] 1764번 파이썬 (듣보잡) (0) | 2024.03.22 |
---|---|
[백준] 1620번 파이썬 (나는야 포켓몬 마스터 이다솜) (0) | 2024.03.22 |
[백준] 1654번 파이썬 (랜선 자르기) (0) | 2024.03.21 |
[백준] 2108번 파이썬 (통계학) (0) | 2024.03.21 |
[백준] 10866번 파이썬 (덱) (0) | 2024.03.21 |