PS/백준

[Python] 1966번 프린터 큐

s_omi 2024. 10. 30. 09:03

✏️ 문제

 

문제 파악

같은 중요도가 없다면 쉽게 풀 수 있는데 중요도가 같은 값들이 있어서 시간이 걸렸던.. 문제이다.

덱에 넣을 때부터 아예 (중요도, 인덱스)로 키 값도 같이 넣어서 키 값을 기준으로 구하는 값이 맞는 지 확인하도록 했다.

 

그리고 max 값을 구할 때 처음에 max(q[0]) 으로 했는데 알고보니 max(q)[0] 이런 식으로 구하는 거 였다...

 

알고리즘

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

 

코드

from collections import deque

for _ in range(int(input())):
  n, m = map(int, input().split()) 
  ary = list(map(int, input().split())) 
  order = 0 

  q = deque([])
  for i in range(n):
    q.append((ary[i], i))

  while q:
    current = q.popleft()
   
    if len(q) > 0 and current[0] < max(q)[0]:
      q.append(current) 
    else:
      order += 1 
      if current[1] == m: 
        print(order)
        break