백준 1966번 "프린터 큐"

문제

백준 1966번 프린터 큐


풀이

큐를 돌리면서 가중치가 높은 순서대로 인덱스를 정답 리스트로 빼준다.
이 후 정답 리스트에서 해당 인덱스의 순서를 찾아서 출력


Python 코드

import sys
from collections import deque
input = sys.stdin.readline

for _ in range(int(input())):
  n, m = map(int, input().split())
  weight = deque(list(map(int, input().split())))
  idx = deque([i for i in range(n)])
  answer = []

  while weight:
    if weight[0] == max(weight):
      weight.popleft()
      answer.append(idx.popleft())
    else:
      weight.append(weight.popleft())
      idx.append(idx.popleft())
  
  print(answer.index(m)+1)

좋은 웹페이지 즐겨찾기