코딩테스트 대비/BOJ

[Baekjoon/Python] 1966번: 프린터 큐 - 효과는 굉장했다!

bluetag_boy 2021. 11. 2. 22:54
반응형
 

1966번: 프린터 큐

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

www.acmicpc.net

알고리즘 분류

  • 구현
  • 자료 구조
  • 시뮬레이션

 

SOLUTION

import sys
from collections import deque

for _ in range(int(sys.stdin.readline())):
    n, m = list(map(int, sys.stdin.readline().split()))
    imp = deque(map(int, sys.stdin.readline().split()))
    idx = deque(range(len(imp)))
    idx[m] = 'target'

    # 순서
    order = 0
    
    while True:
        # 가장 앞에 있는 문서의 중요도 확인
        if imp[0] == max(imp):
            order += 1
                        
            # 가장 앞에 있는 문서의 중요도가 가장 높고 찾으려는 target 일 때
            if idx[0] == 'target':
                print(order)
                break

            else:
                imp.popleft()
                idx.popleft()

        else:
            imp.append(imp.popleft())
            idx.append(idx.popleft())