본문 바로가기
알고리즘

[백준] 11723번: 집합 - python

by 육빔 2024. 4. 4.
728x90
반응형

https://www.acmicpc.net/problem/11723

 

11723번: 집합

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

www.acmicpc.net

 

집합 자료형을 처음 공부할 수 있었던 문제

 

맨날 딕셔너리만 써서 사용법을 잘 몰랐다.

 

gpt한테 물어본 차이점.

 

뭐 많이 다른거 같진 않지만 집합자료형은 엄청나게 많은 값을 다룰 수 있다는 것 같았다.

 

딕셔너리(Dictionary): 서로 관련된 정보를 연결할 때 유용합니다. 예를 들어, 사람의 이름과 그 사람의 정보(이메일, 전화번호 등)를 연결할 수 있습니다.

집합(Set): 중복을 허용하지 않는 값을 저장할 때 유용하며, 수학적 집합 연산(합집합, 교집합, 차집합 등)을 수행하는 데 사용될 수 있습니다.

import sys
input = sys.stdin.readline

m = int(input().rstrip())
arr = set()

for _ in range(m):
    com = list(input().rstrip().split())
    if com[0] == 'add':
        arr.add(int(com[1]))
    elif com[0] == 'check':
        if int(com[1]) in arr :
            print(1)
        else:
            print(0)
    elif com[0] == 'remove':
        if int(com[1]) in arr :
            arr.discard(int(com[1]))
    
    elif com[0] == 'toggle':
        if int(com[1]) in arr :
            arr.discard(int(com[1]))
        else:
            arr.add(int(com[1]))
    elif com[0] == 'all':
        arr = set([i for i in range(1, 21)])
    elif com[0] == 'empty':
        arr = set()

 

완성

728x90
반응형