https://www.acmicpc.net/problem/11723
11723번: 집합
첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다.
www.acmicpc.net
💡 처음에 그냥 if-else문으로 푸니까 시간초과가 나서 구글링 해보니까 파라미터가 1개인 것과 2개인 것을 구분해서 풀어야 했던 문제. 난 왜 생각이 안나는걸까..아직도 한참 멀었군
+사실 그렇게 바꾸고도 계속 시간초과 나서 pypy로도 바꿔보고 생난리였음
그..원래 pypy가 메모리가 더 적나요..??
찾아봐야겠네..
✔ 소스코드
import sys
M=int(sys.stdin.readline())
S=set()
for i in range(M):
word=sys.stdin.readline().strip().split()
if len(word)==1:
if word[0]=="all":
S=set([i for i in range(1,21)])
else:
S=set()
else:
x=int(word[1])
if word[0]=="add":
S.add(x)
elif word[0]=="remove":
S.discard(x)
elif word[0]=="check":
if x in S:
print(1)
else:
print(0)
elif word[0]=="toggle":
if x in S:
S.discard(x)
else:
S.add(int(word[1]))
'백준문제풀이' 카테고리의 다른 글
[백준 문제풀이] 13023번 : ABCDE (0) | 2021.08.24 |
---|---|
[백준 문제풀이] 1182번 : 부분수열의 합 (0) | 2021.08.22 |
[백준 문제풀이] 14501번 : 퇴사 (0) | 2021.08.20 |
[백준 문제풀이] 1759번 : 암호 만들기 (0) | 2021.08.20 |
[백준 문제풀이] 15652번 : N과 M(6) (0) | 2021.08.15 |