코딩테스트

스택과 큐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에서 삭제와 삽입 모두 가능하다!