728x90
반응형
Silver IV
# 18258 큐 2
링크 : https://www.acmicpc.net/problem/18258
풀이
import sys
from collections import deque
q = deque()
N = int(sys.stdin.readline())
for i in range(N):
order = sys.stdin.readline().split()
if order[0] == 'push':
q.append(order[1])
elif order[0] == 'pop':
if len(q) == 0:
print(-1)
else:
print(q.popleft())
elif order[0] == 'size':
print(len(q))
elif order[0] == 'empty':
if len(q) == 0:
print(1)
else:
print(0)
elif order[0] == 'front':
if len(q) == 0:
print(-1)
else:
print(q[0])
elif order[0] == 'back':
if len(q) == 0:
print(-1)
else:
print(q[-1])
후기
- 시간초과 문제가 발생하는 것을 제외하면 deque를 사용해 무난히 풀 수 있는 문제였다.
- sys.stdin.readline()을 사용해 입력값을 읽는 시간을 단축시켜 해결한다.
- q = deque() // q = deque([])는 서로 같은 결과를 동작한다 : 크게 신경 쓰지 않아도 될 듯
'Algorithm Study > Python' 카테고리의 다른 글
[백준 파이썬] # 1978 소수 찾기 (0) | 2022.02.19 |
---|---|
[백준 파이썬] # 1316 그룹단어 체커 (0) | 2022.02.19 |
[백준 파이썬] # 2941 크로아티아 알파벳 (0) | 2022.02.18 |
[백준 파이썬] # 2869 달팽이는 올라가고 싶다 (0) | 2022.02.17 |
[백준 파이썬] # 2839 설탕 배달 (0) | 2022.02.17 |