백준 [ALGORITHM] - 덱 (10866)

2023. 4. 20. 09:00코딩/백준 [ALGORITHM]

반응형
from collections import deque
import sys
N = int(sys.stdin.readline())
dq = deque([])

def push(n):
    dq.appendleft(n)
def pushb(n):
    dq.append(n)

def pop():
    if len(dq) != 0:
        a = dq[0]
        dq.popleft()
        print(a)
    else:
        print("-1")

def popb():
    if len(dq) != 0:
        a = dq[-1]
        dq.pop()
        print(a)
    else:
        print("-1")

def size():
    print(len(dq))

def empty():
    if len(dq) == 0:
        print("1")
    else:
        print("0")

def front():
    if len(dq) == 0:
        print("-1")
    else:
        print(dq[0])

def back():
    if len(dq) == 0:
        print("-1")
    else:
        print(dq[-1])


func_dict = {
    "push_front" : push,
    "push_back" : pushb,
    "pop_front" : pop,
    "pop_back" : popb,
    "size" : size,
    "empty" : empty,
    "front" : front,
    "back"  : back
}

for i in range(0,N):
    get = sys.stdin.readline().rstrip()
    if " " in get:
        key,value = get.split()
        value = int(value)
        func_dict[key](value)
    else:
        func_dict[get]()

그냥 list를 이용해서 덱 구현 하려고 했는데 자꾸 오답이래서 덱 모듈 이용함

반응형