자료구조 큐를 구현하는 문제!
큐의 개념만 알고 있다면 코드는 간결하지만!
이 문제를 통해 얻을 수 있었던 것은... 파이썬 시간초과 해결하는 법이랄까..
입력: 명령어를 입력할 횟수를 입력한 후, push, pop, size, empty, front, back 명령어 입력
출력: 입력한 명령어에 따라 출력
list()를 사용하여 큐를 구현하였다.
push -> append(num)
pop -> pop(0) # 큐는 선입선출
size -> len(queue)
empty -> len을 사용하여 조건문 사용
front -> queue[0]
back -> queue[-1]
import sys
if __name__ == '__main__':
N = int(input())
queue = list()
for i in range(N):
code = sys.stdin.readline()
if (code[:4] == 'push'):
num = int(code[5:])
queue.append(num)
elif (code[:3] == "pop"):
if (len(queue) == 0):
print(-1)
else:
a = queue[0]
queue.pop(0)
print(a)
elif (code[:4] == "size"):
print(len(queue))
elif (code[:5] == "empty"):
if (len(queue) == 0):
print(1)
else:
print(0)
elif (code[:5] == "front"):
if (len(queue) == 0):
print(-1)
else:
print(queue[0])
elif (code[:4] == "back"):
if (len(queue) == 0):
print(-1)
else:
print(queue[-1])