데굴데굴

[파이썬] 10845번: 큐 본문

algorithm/백준

[파이썬] 10845번: 큐

aemaaeng 2022. 6. 30. 23:11

10845번: 큐 (acmicpc.net)

 

10845번: 큐

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

www.acmicpc.net

 

분명 맞게 푼 것 같았는데 답과는 다르게 출력돼서 뭐지..? 했는데 queue를 for문 내에 정의한 걸 디버깅하다가 깨달았다^^

그리고 pop을 수행할 때에도 리턴한 값을 출력하기 위해서 print()를 씌워줘야 한다. 

비슷한 스택 문제를 풀어봤어서 비교적 수월하게 풀 수 있었다. 

 

이 문제도 역시 n의 입력이 1부터 10000까지 주어지기 때문에 빠른 처리를 위해서 sys 모듈을 사용해야 한다.

n도 명령도 전부 sys로 입력받아야 한다! 

 

코드

import sys

n = int(sys.stdin.readline())
queue = []

for i in range(n):
    lst = sys.stdin.readline().split()

    if lst[0] == 'push':
        queue.append(int(lst[1]))
    elif lst[0] == 'pop':
        if len(queue) != 0:
            print(queue.pop(0))
        else:
            print(-1)
    elif lst[0] == 'size':
        print(len(queue))
    elif lst[0] == 'empty':
        if len(queue) == 0:
            print(1)
        else:
            print(0)
    elif lst[0] == 'front':
        if len(queue) == 0:
            print(-1)
        else:
            print(queue[0])
    elif lst[0] == 'back':
        if len(queue) == 0:
            print(-1)
        else:
            print(queue[-1])

'algorithm > 백준' 카테고리의 다른 글

[파이썬] 2231번: 분해합  (0) 2022.07.05
[파이썬] 17478번: 재귀함수가 뭔가요?  (0) 2022.07.01
[파이썬] 9012번: 괄호  (0) 2022.06.16
[파이썬] 10828번: 스택  (0) 2022.06.16
[파이썬] 10870번: 피보나치 수 5  (0) 2022.06.14
Comments