본문 바로가기
백준 풀이

[백준/BOJ] - 10845번 python 풀이 - deque, 덱 활용

by 반오십 코린이 2022. 11. 23.
728x90


Key Point

1. 덱을 사용하는 문제이기 때문에 실제로 덱을 사용하여 풀면 좋다.(시간 복잡도 면에서)

2. 정수를 저장하는 덱이라고 정의했기 때문에 명령어를 입력받을 때 str로 입력 받고 

int형으로 변경해주는 작업이 필요하다.

3. 명령어 수행 하나가 종료되면 입력 받는 list를 비어주자. 


import sys
from collections import deque

N =int(sys.stdin.readline())
queue = deque([])

for _ in range(N):
    ord = list(sys.stdin.readline().split())
    if len(ord) == 2:
        if ord[0] == 'push':
            queue.appendleft(int(ord[1])) #좌측(앞)에 삽입
    else: # 길이가 1일 경우
        if ord[0] == 'pop':
            if len(queue) == 0:
                print(-1)
            else:
                print(queue.pop())
        elif ord[0] == 'size':
            print(len(queue))
        elif ord[0] == 'empty':
            if len(queue) == 0:
                print(1)
            else:
                print(0)
        elif ord[0] == 'front':
            if len(queue) !=0:
                print(queue[-1])
            else:
                print(-1)
        elif ord[0] == 'back':
            if len(queue) !=0:
                print(queue[0])
            else:
                print(-1)
        ord.clear()
728x90