티스토리 뷰

반응형

문제

 

1966번: 프린터 큐

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

www.acmicpc.net

 

풀이

import sys
from collections import deque

TC = int(sys.stdin.readline())
for _ in range(TC):

    N, M = map(int, sys.stdin.readline().split())
    queue = deque(map(int, sys.stdin.readline().split()))
    count = 0
    m = max(queue)

    while queue:
        if len(queue) == 1:
            queue.popleft()
            count += 1
            if M == 0:
                print(count)
        else:
            if queue[0] == m:
                queue.popleft()
                m = max(queue)
                count += 1
                if M == 0:
                    print(count)
                    break
                else:
                    M -= 1
            else:
                queue.append(queue.popleft())
                if M == 0:
                    M = len(queue)-1
                else:
                    M -= 1

반응형