https://www.acmicpc.net/problem/11723
비어있는 공집합 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 연산이 주어질때마다, 결과를 출력한다.
- 비어있는 집합을 만든다.
- 명령이 처리되는 부분을 함수로 만들어 실행시킨다.
런타임 에러 => 시간 초과
num=int(input()) s=set() def chk(order,s): if order[0]=='add': if int(order[1]) not in s: s.add(int(order[1])) elif order[0]=='remove': if int(order[1]) in s: s.remove(int(order[1])) elif order[0]=='check': if int(order[1]) in s: print(1) else: print(0) elif order[0]=='toggle': if int(order[1]) in s: s.discard(int(order[1])) else: s.add(int(order[1])) elif order[0]=='all': s.clear() for i in range(1,21): s.add(i) elif order[0]=='empty': s.clear() for i in range(num): order=list(input().split()) chk(order,s)
import sys input = sys.stdin.readline s = [] def boj(command,x): global s if command == "add": if x not in s: s.append(x) elif command == "remove": if x in s: s.remove(x) elif command == "check": if x in s: print(1) else : print(0) elif command == "toggle": if x in s : s.remove(x) else : s.append(x) elif command == "all" : s = [i for i in range(1,21)] elif command == "empty" : s=[] M = int(input()) for _ in range(M): command = input().strip() if command == "all" or command == "empty" : boj(command,0) else : command,x = command.split() boj(str(command),int(x))
import sys m = int(sys.stdin.readline()) S = set() for _ in range(m): temp = sys.stdin.readline().strip().split() if len(temp) == 1: #숫자가 입력되지 않는 경우 if temp[0] == "all": S = set([i for i in range(1, 21)]) else: S = set() else: func, x = temp[0], temp[1] x = int(x) if func == "add": S.add(x) elif func == "remove": S.discard(x) elif func == "check": print(1 if x in S else 0) elif func == "toggle": if x in S: S.discard(x) else: S.add(x)