본문 바로가기
알고리즘/백준

백준-10866번(덱)-python

by nyeongha 2023. 11. 23.

백준-10866번(덱)-python

dequeue문제를 풀어보았다.

push_front함수는 insert(0,x[1])로도 표현이 가능했지만,일반 queue와 달리 appendleft라는 함수로도 가능했다.

하지만 vscode에서는 파랭이가 떠서 기분이 좋지않다.에디터를 바꿀까 고민하고있다.



또한 push_back연산은 덱의 마지막부분에 요소를 추가해주는 함수이다.

append(x[1])로 표현가능하다.



pop_front연산은 덱의 제일 앞에 있는 요소를 빼내는 함수이다.popleft()를 사용한다.



pop_back은 덱의 마지막 요소를 제거하는 함수이다.pop()을 사용하였다.



size는 덱의 요소의 수를 반환해야하므로 len()함수를 사용한다.



empty는 덱이 비었으면 1,요소가 들어있으면 0을 반환한다.



front는 덱의 맨 앞요소인 deque[0]을 출력한다.(제거아님)

back는 덱의 마지막 요소인 deque[-1]을 출력한다.(제거아님)

import sys
from collections import deque
input = sys.stdin.readline



def solution():
    deque: deque=([])

    for _ in range(int(input())):

        x= input().split()
        if x[0] == 'push_front':
            deque.insert(0, x[1])
        elif x[0] == 'push_back':
            deque.append(x[1])
        elif x[0] == 'pop_front':
            print(deque.pop(0) if deque else -1)
        elif x[0] == 'pop_back':
            print(deque.pop() if deque else -1)
        elif x[0] == 'size':
            print(len(deque))
        elif x[0] == 'empty':
            print(0 if deque else 1)
        elif x[0] == 'front':
            print(deque[0] if deque else -1)
        elif x[0] == 'back':
            print(deque[-1] if deque else -1)


solution()