BOJ/Python

백준 10866번 덱 파이썬

띵지니어 2022. 1. 11. 11:11
반응형

https://www.acmicpc.net/problem/10866

 

10866번: 덱

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

www.acmicpc.net

import sys
from collections import deque
d = deque()
for i in range(int(sys.stdin.readline())):
    x = sys.stdin.readline().split()
    if x[0] == "push_back":
        d.append(x[1])
    elif x[0] == "push_front":
        d.appendleft(x[1])
    elif x[0] == "pop_front":
        if len(d) == 0:
            print(-1)
        else:
            print(d.popleft())
    elif x[0] == "pop_back":
        if len(d) == 0:
            print(-1)
        else:
            print(d.pop())
    elif x[0] == "size":
        print(len(d))
    elif x[0] == "empty":
        if  len(d) == 0:
            print(1)
        else:
            print(0)
    elif x[0] == "front":
        if len(d) == 0:
            print(-1)
        else:
            print(d[0])
    elif x[0] == "back":
        if len(d) == 0:
            print(-1)
        else:
            print(d[len(d)-1])

deque()를 이해하면 스택이나 큐처럼 쉽게 접근할 수 있는 문제였다.

deque()를 사용할때는

from collections import deque

항상 선언해야하고 ,쉽게 라이브러리 라고 생각하면 된다. 

 

반응형
목차(index)