본문 바로가기

알고리즘 삽질장

[BOJ] 10845번 - 큐

반응형


문제설명

https://www.acmicpc.net/problem/10845

 

10845번: 큐

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

사고과정

  • 데큐 라이브러리를 활용해 큐를 구현했다.
  • if 문을 좀 더 간결하게 작성해 보았다.
  • 처음에 front, back을 입력받으면 출력만 해주고 원소를 빼내지 않아야 하는데 pop 까지 해버려서 실수하긴 했다..!
  • 시간 초과를 막기 위해서 sys 라이브러리를 사용했다(sys 사용안하면 시간초과 남!)

풀이

from collections import deque
import sys

input = sys.stdin.readline
n = int(input().rstrip())
queue = deque([])
for _ in range(n):
    order = input().split()
    if order[0] == 'push':
        queue.append(order[1])
    if order[0] == 'pop':
        print(-1 if len(queue) == 0 else queue.popleft())
    if order[0] == 'size':
        print(len(queue))
    if order[0] == 'empty':
        print(1 if len(queue) == 0 else 0)
    if order[0] == 'front':
        print(-1 if len(queue) == 0 else queue[0])
    if order[0] == 'back':
        print(-1 if len(queue) == 0 else queue[-1])
반응형

'알고리즘 삽질장' 카테고리의 다른 글

[BOJ] 17413번 - 단어 뒤집기 2  (0) 2021.10.24
[BOJ] 1158번 - 요세푸스 문제  (0) 2021.10.24
[BOJ] 1406번 - 에디터  (0) 2021.10.24
[BOJ] 1874번 - 스택 수열  (0) 2021.10.23
[BOJ] 9012번 - 괄호  (0) 2021.10.23