BOJ / Implementation / 집합 / Python

k_dah·2022년 1월 22일
0

CodingTest

목록 보기
13/16

<11723번>

풀면서

집합 자료형

  • 중복 허용x
  • 순서 x

리스트, 튜플과 달리 사전 & 집합 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없다.
'특정 데이터가 이미 등장한 적이 있는지'를 확인할 때 효과적이다.

  • 집합 자료형의 연산
    • 합집합 : |
    • 교집합 : &
    • 차집합 : -
  • 집합 자료형 관련 함수
    • 집합에 값을 추가 : .add()
    • 여러 개의 값을 추가 : .update()
    • 특정한 값을 제거 : .remove()
      +안전한 제거 : .discard()

내 코드

import sys
input = sys.stdin.readline

S = set()

for _ in range(int(input())):
    command = list(input().split())
    
    if command[0] == "all":
        # for문보다 실행시간이 짧다.
        S = set(['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20'])
    elif command[0] == "empty":
        S = set()
    elif command[0] == "add":
        S.add(command[1])
    elif command[0] == "remove":
        S.discard(command[1])
    elif command[0] == "check":
        print(int(command[1] in S))
    elif command[0] == "toggle":
        if command[1] in S:
            S.remove(command[1])
        else:
            S.add(command[1])
  • 집합 개념
  • for문을 사용하지 않고 일일이 작성해 주는게 실행 시간이 짧다. (상황에 맞게 잘 선택하기)
profile
개똥이

0개의 댓글