반응형
1. 문제
2. 코드
from collections import deque
import sys
n = int(input())
queue = deque()
for i in range(n):
temp = sys.stdin.readline()
#push
if temp[0] == 'p' and temp[1] == 'u':
temp, temp_num = temp.split()
queue.append(temp_num)
#pop
elif temp[0] == 'p':
if len(queue) == 0:
print(-1)
continue
temp_num = queue.popleft()
print(temp_num)
#size
elif temp[0] == 's':
print(len(queue))
#empty
elif temp[0] == 'e':
if len(queue) == 0:
print(1)
else:
print(0)
#front
elif temp[0] == 'f':
if len(queue) == 0:
print(-1)
continue
print(queue[0])
#back
elif temp[0] == 'b':
if len(queue) == 0:
print(-1)
continue
print(queue[len(queue)-1])
3. 풀이
파이썬에서 큐를 구현하려면 deque를 사용하면 된다.
deque를 사용하면 popleft가 가능한데,
일반적인 pop으로 index를 부여해서 pop하는 데에는 log n이 들지만 deque의 popleft는 log 1이다.
따라서 queue를 구현할 때는 deque를 Import 해서 구현하면 된다.
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 15729 - 방탈출 (0) | 2022.01.19 |
---|---|
[백준] 1010번 - 다리 놓기 (파이썬) (0) | 2022.01.13 |
[백준] 5639번 - 이진 검색 트리 (0) | 2022.01.12 |
[백준] 2606번 - 바이러스 (0) | 2022.01.11 |
[백준] 1260번 - DFS와 BFS (0) | 2022.01.08 |