큐를 파이썬에서는 리스트로 표현할 수 있다.
반복문 안에서는 input()보다 sys.stdin.readline()을 사용해야 시간초과 발생 확률 Down.
input()과 sys.stdin.readline()의 차이
import sys
n = int(input())
queue = []
for i in range(n):
command = sys.stdin.readline().split()
if command[0] == "push":
queue.append(command[1])
elif command[0] == "pop":
if queue:
print(queue[0])
queue.pop(0)
else:
print("-1")
elif command[0] == "size":
print(len(queue))
elif command[0] == "empty":
if not queue:
print("1")
else:
print("0")
elif command[0] == "front":
if queue:
print(queue[0])
else:
print("-1")
elif command[0] == "back":
if queue:
print(queue[len(queue)-1])
else:
print("-1")
push
push는 큐의 규칙 상 마치 사람들이 줄을 서듯이 맨 끝에 되어야한다.
append()는 리스트 맨 마지막 오른쪽에 값을 추가해준다.
pop
pop은 큐의 규칙 상 줄에서 가장 먼저 줄을 선 사람부터 빠지듯이 맨 앞 첫번 째가 빠져야한다.
pop()의 괄호 안에 인덱스를 넣어 pop(0)이라고 하면 맨 첫번 째인 0번 째가 빠진다.
만약 큐 리스트에 값이 없다면 뺄 수가 없다.
back
만약 큐 리스트에 값이 들어있으면 맨 마지막 값을 출력하는데 큐 리스트의 길이를 len()으로 구하고 리스트는 0부터 시작이고 len()의 값은 1부터 시작이니까 -1을 해줘서 맨 마지막 값을 출력한다.