이건 너무 쉽게 빨리 잘 풀었다. 후후 칭찬해🤗 내 스스로 ~!~!
그래서 스택과 큐를 쉽게 정리해보겠다.
스택은 쌓아올린다는 의미, 시간 순서에 따라 자료가 쌓여서 가장 마지막에 삽입된 자료가 가장 먼저 삭제 된다. 즉, 후입선출 lifo (last in first out)이다.
큐는 양쪽에서 작업이 이뤄진다. 한쪽에서는 삽입, 다른 한쪽에서는 삭제가 이뤄진다.
가장 첫 원소를 front, 가장 끝 원소를 rear이다. rear로 들어와서 front부터 빠진다. 가장 먼저 들어온 front가 빠진다. 즉 선입선출이다.
끝으로 나의 정리이다.
from collections import deque
import sys
input=sys.stdin.readline
N=int(input())
queue= deque()
for _ in range(N):
x=input().split()
if x[0]=="push":
queue.append(x[1])
elif x[0]=="pop":
if not queue:
print("-1")
else:
print(queue.popleft())
elif x[0]=="size":
print(len(queue))
elif x[0]=="empty":
if not queue:
print("1")
else:
print("0")
elif x[0]=="front":
if not queue:
print("-1")
else:
print(queue[0])
elif x[0]=="back":
if not queue:
print("-1")
else:
print(queue[-1])