코딩테스트
스택과 큐3. 백준 10866번 덱
Giant Oreo
2021. 5. 11. 19:16
import sys
input = sys.stdin.readline
n = int(input())
deque = []
for _ in range(n):
c = input().split()
if c[0]=='push_front':
deque.insert(0, c[1])
elif c[0]=='push_back':
deque.append(c[1])
elif c[0]=='pop_front':
if not deque:
print(-1)
else:
print(deque.pop(0))
elif c[0]=='pop_back':
if not deque:
print(-1)
else:
print(deque.pop(-1))
elif c[0]=='size':
print(len(deque))
elif c[0]=='empty':
if not deque:
print(1)
else:
print(0)
elif c[0]=='front':
if not deque:
print(-1)
else:
print(deque[0])
elif c[0]=='back':
if not deque:
print(-1)
else:
print(deque[-1])
덱은 큐와 다르게 양쪽에서 삽입과 삭제 모두가 가능하다. 큐는 front에서는 삽입이, back에서는 삭제만 가능한 반면에 덱은 front에서 삭제와 삽입, back에서 삭제와 삽입 모두 가능하다!