11723번: 집합

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

www.acmicpc.net


처음에는 리스트에 숫자를 직접 넣어서 했지만 시간 초과 ㅠ_ㅠ

  1. 21개짜리 배열을 만든다.
  2. 해당 인덱스에 있으면(1) 없으면(0) 저장
  3. all 은 [1]*21로 empty는 [0]*21로 초기화
import sys
input = sys.stdin.readline

_list = [0]*21
M = int(input())

for _ in range(M):
    _input = list(input().rstrip().split())
    command = _input[0]
    if len(_input) == 2:
        num = int(_input[1])
    if command == "add":
        _list[num] = 1
    elif command == "remove":
        _list[num] = 0
    elif command == "toggle":
        _list[num] = 1 - _list[num]
    elif command == "check":
        print(_list[num])
    elif command == "all":
        _list = [1]*21
    elif command == "empty":
        _list = [0]*21
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기