파이썬 collections 라이브러리의 deque 자료구조를 활용하면 쉽게 구현할 수 있는 문제였다. 코드는 다음과 같다.
import sys
from collections import deque
input = sys.stdin.readline
n = int(input())
queue = deque()
for _ in range(n):
operation = input().rstrip()
if operation == "size":
print(len(queue))
elif operation == "empty":
if len(queue)==0: print(1)
else: print(0)
elif operation == "front":
if len(queue)==0: print(-1)
else: print(queue[0])
elif operation == "back":
if len(queue)==0: print(-1)
else: print(queue[-1])
elif operation == "pop_front":
if len(queue)==0: print(-1)
else: print(queue.popleft())
elif operation == "pop_back":
if len(queue)==0: print(-1)
else: print(queue.pop())
else:
operation, value = operation.split()
if operation == "push_front":
queue.appendleft(value)
else:
queue.append(value)
'Algorithm > Data Structure' 카테고리의 다른 글
[백준] 10799: 쇠막대기 (python 파이썬) (2) | 2024.04.28 |
---|---|
[백준] 17413: 단어 뒤집기 2 (python 파이썬) (0) | 2024.04.08 |
[백준] 10845: 큐 (python 파이썬) (0) | 2024.04.06 |
[백준] 1406: 에디터 (python 파이썬) (0) | 2024.04.05 |
[백준] 1874: 스택 수열 (python 파이썬) (0) | 2024.04.04 |