2023-10-21-동국대SW역량강화캠프-121. 직접 만든 큐
문제
준함이는 STL에서 지원하는 큐 기능을 믿지 않는다. 그러나 원하는 프로그램을 짜기 위해 큐 기능이 어떻게든 필요했던 준함이는 당신에게 큐 기능을 구현해 줄 것을 요청했다. 준함이가 원하는 큐 기능은 다음 명령들을 처리하는 것이다.
push X: 정수 X를 큐에 넣는다.
pop: 큐에서 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
size: 큐에 들어있는 정수의 개수를 출력한다.
empty: 큐가 비어있으면 1을, 아니면 0을 출력한다.
front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.
준함이를 위해 큐 기능을 구현해주자
입력
첫째 줄에 명령의 수 n이 주어진다. (1<=n<=10000) 다음 n개의 줄에 명령의 형식에 맞게 명령들이 주어진다. (0<=X<=100000)
출력
명령들을 수행한 결과들을 한 줄에 하나씩 출력한다. 최소한 하나는 출력함을 보장한다.
예제 1 입력
13
push 8
push 3
push 7
size
empty
front
pop
back
pop
pop
pop
empty
size
예제 1 출력
3
0
8
8
7
3
7
-1
1
0
예제 2 입력
6
push 3
pop
empty
pop
push 2
empty
예제 2 출력
3
1
-1
0
Source
from collections import deque
q = deque()
n = int(input())
for i in range(n):
cmd = input().split()
if(cmd[0] == 'push'):
q.append(cmd[1])
elif(cmd[0] == 'pop'):
if(len(q) == 0):
print(-1)
else:
print(q.popleft())
elif(cmd[0] == 'size'):
print(len(q))
elif(cmd[0] == 'empty'):
if(len(q) == 0):
print(1)
else:
print(0)
elif(cmd[0] == 'front'):
if(len(q) == 0):
print('-1')
else:
print(q[0])
elif(cmd[0] == 'back'):
if(len(q) == 0):
print('-1')
else:
print(q[-1])