문제의 제목대로 데크를 사용해서 문제를 수월하게 풀 수 있다.
from collections import deque
import sys
d = deque()
n = int(input())
for i in range(n):
command = sys.stdin.readline().split()
if command[0] == "push_front":
d.appendleft(command[1])
elif command[0] == "push_back":
d.append(command[1])
elif command[0] == "pop_front":
if d:
print(d[0])
d.popleft()
else:
print("-1")
elif command[0] == "pop_back":
if d:
print(d[len(d) - 1])
d.pop()
else:
print("-1")
elif command[0] == "size":
print(len(d))
elif command[0] == "empty":
if d:
print("0")
else:
print("1")
elif command[0] == "front":
if d:
print(d[0])
else:
print("-1")
elif command[0] == "back":
if d:
print(d[len(d) - 1])
else:
print("-1")
push_front일 때
appendleft() 함수를 이용.
pop_front일 때
popleft() 함수를 이용.