개발자가 내팔자

[BOJ] 백준 1966 프린터 큐 Python 본문

Algorithms

[BOJ] 백준 1966 프린터 큐 Python

야생의 개발자 2022. 5. 30. 10:10

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

 

1966번: 프린터 큐

여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에

www.acmicpc.net

from collections import deque
import sys


loop = int(sys.stdin.readline())
for _ in range(loop):
    n, m = map(int, sys.stdin.readline().split())

    docs = deque(map(int, sys.stdin.readline().split()))
    q = deque(0 for _ in range(n))
    q[m] = True
    i = 0
    while q:
        while max(docs) > docs[0]:
            docs.append(docs.popleft())
            q.append(q.popleft())
        if q[0] == True:
            print(i + 1)
            break
        docs.popleft()
        q.popleft()
        i += 1

한 번에 맞았지만 뭔가 while문을 두번 돌린다는 게 찝찝해서 더 좋은 방법이 없을까 찾아봤지만 크게 유의미한 것은 없었던 것 같다.

Comments