📊알고리즘, 문제풀이/📈문제풀이 (PS)

[알고리즘][Python] 백준 11723 집합 문제 풀이

Written by Donghak Park

문제 출처 : www.acmicpc.net/problem/11723

 

11723번: 집합

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

www.acmicpc.net


문제 해석 : 주어진 조건에 따라 집합 연산을 수행하는 프로그램을 작성하는 문제이다.

 

문제 풀이 :  까다로운 조건이 없어 주어진 제시문대로 코드를 작성하면 풀 수 있다.

-> Pypy3로 컴파일 하면 메모리 초과가 난다. 이는 pypy3가 내부적으로 더 메모리를 많이 사용하기 때문이 것 같다.


풀이 코드

import sys
input = sys.stdin.readline

M = int(input())
S = set()

for _ in range(M):
    com = input().split()

    if len(com) == 1:
        com0 = com[0]
    else:
        com0,com1 = com

    if com0 == "add":
        S.add(int(com1))

    elif com0 == "remove":
        if int(com1) in S:
            S.remove(int(com1))

    elif com0 == "check":
        if int(com1) in S:
            print(1)
        else:
            print(0)

    elif com0 == "toggle":
        if int(com1) in S:
            S.remove(int(com1))
        else:
            S.add(int(com1))

    elif com0 == "all":
        S = {1,2,3,4,5,6,7,8,9,10,
             11,12,13,14,15,16,17,18,19,20}

    else:
        S.clear()

author : donghak park
contact : donghark03@naver.com

## 문제의 저작권은 백준 알고리즘 사이트에 있습니다. 혹시 문제가 되는 부분이 있으면 연락 바랍니다.