[백준 10866 파이썬] - 덱

zsunny·2022년 7월 27일
1

📌 문제

💯 정답

import sys
from collections import deque   # 덱 모듈 import
input = sys.stdin.readline

dq = deque()
n = int(input())

for _ in range(n):
    order_list = list(input().rstrip().split())
    order = order_list[0]
    if order == "push_front":
        dq.appendleft(order_list[1])    # 덱의 앞에 정수 추가
    elif order == "push_back":
        dq.append(order_list[1])
    elif order == "pop_front":
        if dq:                          # dq가 True면 (값이 있으면)
            print(dq.popleft())         # 덱의 앞의 수 pop
        else:
            print(-1)
    elif order == "pop_back":
        if dq:
            print(dq.pop())
        else:
            print(-1)
    elif order == "size":
        print(len(dq))
    elif order == "empty":
        if dq:
            print(0)
        else:
            print(1)
    elif order == "front":
        if dq:
            print(dq[0])
        else:
            print(-1)
    elif order == "back":
        if dq:
            print(dq[-1])
        else:
            print(-1)

📝 설명

• deque 모듈을 import해 appendleft와 popleft를 사용하면 문제를 쉽게 풀 수 있다.
• 덱의 앞에 정수를 추가하는 것은 dq.appendleft(정수)를 사용한다.
• 덱의 앞의수를 pop하는 것은 dq.popleft()를 사용한다.
• 그 외에는 스택, 큐와 비슷한 로직이다.

⭐️ 알고가기

👉 덱 모듈 설명 바로가기

profile
매일 성장하는 예비 웹 개발자 🌱

0개의 댓글