https://www.acmicpc.net/problem/11723
문제 해결 방법
리스트를 잘 활용하여 문제를 해결한다.
코드 구현
정답 코드
import sys
input = sys.stdin.readline
n = int(input())
tmp = []
for i in range(n):
entire = input().strip()
if entire=='all':
tmp = list(range(1, 21))
elif entire=='empty':
tmp.clear()
else:
s, v = entire.split()
v = int(v)
if s == 'add':
if v not in tmp:
tmp.append(v)
if s == 'check':
if int(v) in tmp:
print(1)
else:
print(0)
if s == 'remove':
if v in tmp:
tmp.remove(v)
if s == 'toggle':
if int(v) in tmp:
tmp.remove(v)
else:
tmp.append(v)
시간/공간 복잡도
O(n)
어려웠던 점
- 입력값의 타입에 대해 잘 고려하지 않아서 조건문이 제대로 실행되지 않았던 점
- sys모듈에서 input()함수를 사용할 때, 개행문자(/n)가 붙어서 조건문이 제대로 실행되지 않았던 점
느낀점
- sys모듈에서 input()함수를 사용할 때, 개행문자(/n)를 꼭 처리하여 문제를 해결해야겠다.
- 변수 타입에 대해 잘 고려하고 문제를 풀어야겠다.
- 리스트를 비우기 위해 대상.cleare() 함수를 사용하면 된다.
'코딩테스트 > 문제 풀이 - Python' 카테고리의 다른 글
[백준1620] 나는야 포켓몬 마스터 이다솜 (0) | 2024.09.09 |
---|---|
[백준1003] 피보나치 함수 (0) | 2024.09.09 |
[백준1012] 유기농 배추 (0) | 2024.09.09 |
[백준1926] 그림 (0) | 2024.08.26 |
[백준9252] LCS 2 (0) | 2024.08.14 |