1. 문제

2. 소스코드
import sys
N = int(sys.stdin.readline())
que = []
for _ in range (N):
word = sys.stdin.readline().split()
cmd = word[0]
if cmd == 'push':
que.append(int(word[1]))
elif cmd == 'pop':
if len(que) > 0:
print(que.pop(0))
else:
print(-1)
elif cmd == 'size':
print(len(que))
elif cmd == 'empty':
if len(que) == 0:
print(1)
else:
print(0)
elif cmd == 'front':
if len(que) == 0:
print(-1)
else:
print(que[0])
elif cmd == 'back':
if len(que) == 0:
print(-1)
else:
print(que[-1])
else:
break
3. 고찰
!!주의할 점!!
que = [1,2,3,4]
que.pop()
# 4
que.pop(0)
# 1
계속 틀림이라고 나와서 화나려던 중... 다시 찬찬히 코드를 살펴보니 que.pop()부분이 걸렸다.
기존에 쓰던 pop()은 마지막 원소를 뽑아내는 거라 queue를 구현할 때는 첫번째 원소를 뽑아내도록 pop(0)을 해주어야 했다!
반응형