[백준/Python] 11723번 집합

DEV Dong's Log·2023년 10월 28일
0

Algorithm

목록 보기
1/37
post-thumbnail

11723번 집합

📌Problem

비어있는 공집합 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를 공집합으로 바꾼다.

입력

첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다.
둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다.

출력

check 연산이 주어질때마다, 결과를 출력한다.

✍solution

set과 조건문을 통해 문제를 해결

💻Code

import sys
t=int(input())
result = set()
for _ in range(t):
    word = sys.stdin.readline().strip().split()
    if word[0]=='all':
        result = {'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20'}
    elif word[0]=='empty':
        result=set()
    else:
        a,b=word[0],word[1]
        if a=='add':
            result.add(b)
        elif a=='remove':
            result.discard(b)
        elif a=='check':
            if b in result:
                print(1)
            else:
                print(0)
        elif a=='toggle':
            if b in result:
                result.discard(b)
            else:
                result.add(b)

💡Takeaway

  • set의 discard 내장 함수를 사용하면 해당 값이 없을때 무시 있으면 제거가 가능(remove의 경우 해당 값이 없는 경우 오류)
profile
다양한 분야를 학습하는 프론트엔드 개발자

0개의 댓글