Algorithm/Data Structure

[백준] 10866: 덱 (python 파이썬)

코딩마루 2024. 4. 7. 15:34
 

10866번: 덱

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

파이썬 collections 라이브러리의 deque 자료구조를 활용하면 쉽게 구현할 수 있는 문제였다. 코드는 다음과 같다.

import sys
from collections import deque

input = sys.stdin.readline

n = int(input())
queue = deque()

for _ in range(n):
    operation = input().rstrip()
    if operation == "size":
        print(len(queue))
    elif operation == "empty":
        if len(queue)==0: print(1)
        else: print(0)
    elif operation == "front":
        if len(queue)==0: print(-1)
        else: print(queue[0])
    elif operation == "back":
        if len(queue)==0: print(-1)
        else: print(queue[-1])
    elif operation == "pop_front":
        if len(queue)==0: print(-1)
        else: print(queue.popleft())
    elif operation == "pop_back":
        if len(queue)==0: print(-1)
        else: print(queue.pop())
    else:
        operation, value = operation.split()
        
        if operation == "push_front":
            queue.appendleft(value)
        else:
            queue.append(value)