BOJ 11723. 집합 (Python)
2021. 2. 19. 00:38ㆍProblem Solving/BOJ
BOJ 11723. 집합
https://www.acmicpc.net/problem/11723
풀이
set()
쓰면 되는데 쉽지~ 하면서 풀기 시작했는데 수많은 메모리 초과와 마주해야 했다..
이유는 pypy3로 제출하였기 때문이였다.
지금껏 pypy3가 속도면에서 더 빠르다고 해서 계속 pypy3로 제출해왔는데 메모리면에서 이렇게 손해이면 python3로 제출하고 속도를 개선 할 방법을 찾는게 더 공부에 좋을지도 모르겠다. 스스로 속도를 개선하는것은 좋은 것이니.
또, command
의 길이에 따라 예외처리를 하여 all
, empty
인 경우 모든 if문을 검사하지 않도록 해 주는것이 속도면에서 더욱 좋을 듯 하다.
pypy3와 Cpython비교에 관한 글
소스코드
import sys
S = set()
nums = [i for i in range(1,21)]
N = int(input())
for _ in range(N):
command = sys.stdin.readline().split()
if len(command) == 1:
if command[0] == "all":
S.update(nums)
if command[0] == "empty":
S = set()
continue
n = int(command[1])
if command[0] == "add":
S.add(n)
if command[0] == "remove":
S.discard(n)
if command[0] == "check":
if n in S:
print(1)
else:
print(0)
if command[0] == "toggle":
if n in S:
S.remove(n)
else:
S.add(n)
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
BOJ 1764. 듣보잡 (Python) (0) | 2021.02.19 |
---|---|
BOJ 1620. 나는야 포켓몬 마스터 이다솜 (Python) (0) | 2021.02.19 |
BOJ 11866. 요세푸스 문제 0 (Python) (0) | 2021.02.17 |
BOJ 10828. 스택 (Python) (0) | 2021.02.16 |
BOJ 10816. 숫자 카드 2 (Python) (0) | 2021.02.16 |