Algorithm/Data Structure
[백준] 10866: 덱 (python 파이썬)
코딩마루
2024. 4. 7. 15:34
10866번: 덱
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
파이썬 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)