import sys
from collections import deque # 덱 모듈 import
input = sys.stdin.readline
dq = deque()
n = int(input())
for _ in range(n):
order_list = list(input().rstrip().split())
order = order_list[0]
if order == "push_front":
dq.appendleft(order_list[1]) # 덱의 앞에 정수 추가
elif order == "push_back":
dq.append(order_list[1])
elif order == "pop_front":
if dq: # dq가 True면 (값이 있으면)
print(dq.popleft()) # 덱의 앞의 수 pop
else:
print(-1)
elif order == "pop_back":
if dq:
print(dq.pop())
else:
print(-1)
elif order == "size":
print(len(dq))
elif order == "empty":
if dq:
print(0)
else:
print(1)
elif order == "front":
if dq:
print(dq[0])
else:
print(-1)
elif order == "back":
if dq:
print(dq[-1])
else:
print(-1)
• deque 모듈을 import해 appendleft와 popleft를 사용하면 문제를 쉽게 풀 수 있다.
• 덱의 앞에 정수를 추가하는 것은 dq.appendleft(정수)를 사용한다.
• 덱의 앞의수를 pop하는 것은 dq.popleft()를 사용한다.
• 그 외에는 스택, 큐와 비슷한 로직이다.
👉 덱 모듈 설명 바로가기