본문 바로가기
Problem Solving

[백준] 10866 덱 python 알고리즘 문제

by DuncanKim 2022. 4. 24.
728x90

문제 10866. 덱

1. 나의 코드와 발상 과정

import sys
from collections import deque

n = int(input())
queue = deque()
answer = []
for _ in range(n):
    order = sys.stdin.readline().strip()
    if order[0:10] == 'push_front':
        queue.append(int(order[11:]))
    elif order[0:9] == 'push_back':
        queue.appendleft(int(order[10:]))
    elif order[0:9] == 'pop_front':
        if not queue:
            answer.append(-1)
        else:
            answer.append(queue.pop())
    elif order[0:8] == 'pop_back':
        if not queue:
            answer.append(-1)
        else:
            answer.append(queue.popleft()) 
    elif order[0:5] == 'front':
        if not queue: 
            answer.append(-1)
        else:
            answer.append(queue[-1])   
    elif order[0:4] == 'back':
        if not queue:
            answer.append(-1)
        else:
            answer.append(queue[0])
    elif order[0:4] == 'size':
        answer.append(len(queue))
    elif order[0:5] == 'empty':
        if len(queue) == 0:
            answer.append(1)
        else:
            answer.append(0)       

for i in answer:
    print(i)

10828, 10845 스택, 큐 문제와 같다.

기본 세 가지 문제로 deque와 스택의 작동원리, 활용법을 익혀볼 수 있었다.

 

 

문제 출처:

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

728x90

댓글