문제
접근
큐를 사용하는 문제이다.
파이썬에서 split(‘ ‘) 와 split()의 차이를 명확히 깨닳은 문제이다.
예를 들어, ‘ a b ‘ 가 있을 때
split(‘ ‘)를 해주면 [’’, ‘a’, ‘b’, ‘’] 이렇게 나온다.
’ ‘ 공백을 기준으로 나누다 보니, a 앞과 b 뒤에 공백도 분리의 기준으로 들어가는 듯 하다.
그래서 a 앞 공백 앞에 있는 빈문자 ‘‘를 결과로 담아 주는 듯..
반면 split()을 해주면 [‘a’, ‘b’]로 나온다.
코드
- 파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from collections import deque
import sys
input = sys.stdin.readline
q = deque()
n = int(input())
for _ in range(n):
command = list(map(str, input().split()))
if command[0] == 'push':
q.append(int(command[1]))
elif command[0] == 'pop':
if q:
print(q.popleft())
else:
print(-1)
elif command[0] == 'size':
print(len(q))
elif command[0] == 'empty':
print(int(len(q)==0))
elif command[0] == 'front':
if q:
print(q[0])
else:
print(-1)
elif command[0] == 'back':
if q:
print(q[-1])
else:
print(-1)