import sys
from collections import deque
def push(queue, x):
queue.append(x)
def pop(deque):
return deque.popleft() if deque else -1
def size(queue):
return len(queue)
def empty(queue):
return 1 if not queue else 0
def front(queue):
return queue[0] if queue else -1
def back(queue):
return queue[-1] if queue else -1
deque = deque()
N = int(sys.stdin.readline().rstrip())
for _ in range(N):
order = sys.stdin.readline().rstrip().split()
command = order[0]
if(command == "push"):
push(deque, order[1])
elif(command == "pop"):
sys.stdout.write(str(pop(deque)) + "\n")
elif(command == "size"):
sys.stdout.write(str(size(deque)) + "\n")
elif(command == "empty"):
sys.stdout.write(str(empty(deque)) + "\n")
elif(command == "front"):
sys.stdout.write(str(front(deque)) + "\n")
elif(command == "back"):
sys.stdout.write(str(back(deque)) + "\n")
문제는 쉬운데 역시나 시간 맞추기가 힘든 문제.
우리가 잘 알고 있는 pop(0)은 빼고 다시 옮기는 O(n)의 시간이 소요되기 때문에 해당 문제에서는 바로 시간초과가 발생한다.
pop 부분을 이것저것 손봐서 해보긴했지만, 시간 더 소비하지 않고 다른 사람처럼 deque를 사용했다....
결론: collections의 deque 도움을 받자.
'# 코딩 문제 관련 > 파이썬' 카테고리의 다른 글
백준 2680번(python) (0) | 2020.05.03 |
---|---|
백준 2164번(python) (0) | 2020.05.03 |
백준 4949번(python) (0) | 2020.05.02 |
백준 10773번(python) (0) | 2020.05.02 |
백준 2004번(python) (0) | 2020.04.28 |