hi jaeneee
baekjoon(18258-큐 2)_python.. 시간 초과 본문
1) 문제
2) 예시
3) 제출
from collections import deque
import sys
input = sys.stdin.readline
n = int(input())
li = deque()
result, cnt = "", 0
for i in range(0, n):
order = input().split()
if order[0] == "push":
li.append(order[1])
cnt += 1
elif order[0] == "pop":
if cnt == 0:
result += "-1"
else:
result += str(li.popleft())
cnt -= 1
result += "\n"
elif order[0] == "size":
result += str(cnt)
result += "\n"
elif order[0] == "empty":
if cnt == 0:
result += "1"
else :
result += "0"
result += "\n"
elif order[0] == "front":
if cnt == 0:
result += "-1"
else :
result += str(li[0])
result += "\n"
elif order[0] == "back":
if cnt == 0:
result += "-1"
else :
result += str(li[cnt - 1])
result += "\n"
result = result.rstrip()
print(result)
4) 메모리/시간/코드길이
5) PLUS
시간초과가 계속 나서 선배한테 도움을 구했다,,
알고리즘은 복잡한 것 없이 자료 구조랑 큐라 함수의 실행속도를 보라고 했다,,
그리고 하나를 고쳤더니 바로 해결되었다.
Python list 연산에 따른 시간 복잡도
python list 연산에 따른 시간 복잡도 시간 복잡도가 O(1)인 연산 len(a) len(a)는 리스트 전체 요소의 개수를 리턴합니다. 사용 예시는 다음과 같습니다. a = [1,2,3,4,5] print(len(a)) ## 출력값 # 5 a[i] a[i]..
hyun-am-coding.tistory.com
에서 pop(0)이 n만큼 시간이 걸려서 deque을 이용하라고 했다.
li = []
이렇게 했던 부분을
li = deque()
이렇게 바꾸었더니 시간 초과 없이 바로 성공했다
'알고리즘 > baekjoon' 카테고리의 다른 글
baekjoon(1929-소수 구하기)_python (0) | 2022.09.28 |
---|---|
baekjoon(9461-파도반 수열)_python (0) | 2022.08.12 |
baekjoon(2581-소수)_python (0) | 2022.06.08 |
baekjoon(4673-셀프 넘버)_python (0) | 2022.06.07 |
baekjoon(1037-약수)_python (0) | 2022.05.31 |
Comments