[백준] 11723번 - 집합

chanyeong kim·2022년 4월 1일
0

백준

목록 보기
57/200
post-thumbnail

📩 출처

문제

비어있는 공집합 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 연산이 주어질때마다, 결과를 출력한다.

👉 생각

  • 주어지는 연산을 구현하는 문제로 함수로 만들어서 풀었다!
def add(x):
    global s
    if x not in s:
        s.append(x)
def remove(x):
    global s
    if x in s:
        s.remove(x)
def check(x):
    global s
    if x in s:
        return 1
    else:
        return 0
def toggle(x):
    global s
    if x in s:
        s.remove(x)
    else:
        s.append(x)
def all():
    global s
    s = list(range(1, 21))
def empty():
    global s
    s = []

import sys
s = []
n = int(input())
for _ in range(n):
    tmp = sys.stdin.readline().split()
    if len(tmp) > 1:
        res, num = tmp[0], tmp[1]
    else:
        res = tmp[0]
    if res == 'add':
        add(int(num))
    elif res == 'remove':
        remove(int(num))
    elif res == 'check':
        print(check(int(num)))
    elif res == 'toggle':
        toggle(int(num))
    elif res == 'all':
        all()
    else:
        empty()

0개의 댓글