덱 [ Python ] [ 백준 : 10866 ]

2023. 5. 26. 21:36알고리즘/백준


풀이 및 회고

 

파이썬의 deque 패키지를 사용하면 쉽게 구현할 수 있었다. 

# 덱

# https://docs.python.org/3/library/collections.html#collections.deque

from collections import deque
import sys

n = int(input())

q= deque()
for i in range(n):
    data = list(sys.stdin.readline().split()) 
    if data[0] == "push_front":
        q.appendleft(data[1]) 
    elif data[0] == 'push_back':
        q.append(data[1])
    elif data[0] == 'pop_front':
        if len(q):
            print(q.popleft())
        else:
            print(-1)
    elif data[0] == 'pop_back':
        if len(q):
            print(q.pop())
        else:
            print(-1)
    elif data[0] == 'size':
        print(len(q))
    elif data[0] == 'empty':
        print(int(bool(not q)))
    elif data[0] == 'front':
        if len(q):  
            print(q[0])
        else:
            print(-1)
    elif data[0] == 'back':
        if len(q):
            print(q[-1])
        else:
            print(-1)