[백준] 10866번 : 덱

letsbebrave·2022년 3월 16일
0

codingtest

목록 보기
45/146

문제

풀이

from sys import stdin
from collections import deque

n = int(stdin.readline())

deq = deque()

def sol(word):
    arr = word.split()
    x = arr[0]
    if x == "push_front":
        return deq.appendleft(arr[1])
    elif x == "push_back":
        return deq.append(arr[1])
    elif x == "pop_front":
        try: return deq.popleft()
        except: return -1
    elif x == "pop_back":
        try: return deq.pop()
        except: return -1
    elif x == "size":
        return len(deq)
    elif x == "empty":
        if deq: return 0 # 이 부분이 헷갈렸음 (비어있지 않을 때 0 출력)
        else: return 1 # 비어있을 때 1 출력
    elif x == "front":
        try: return deq[0]
        except: return -1
    elif x == "back":
        try: return deq[len(deq)-1]
        except: return -1

for i in range(n):
    word = stdin.readline().strip()
    answer = sol(word)
    if answer != None:
        print(answer)

참고

https://leonkong.cc/posts/python-deque.html

profile
그게, 할 수 있다고 믿어야 해

0개의 댓글