[백준/Python] 1966번: 프린터 큐
문제
풀이
테스트 케이스의 수를 받고 큐 자료구조에 중요도를 넣는다.
주어진 입력값 중 m 값을 계속 바꾸며 내가 찾는 문서가 어디 있는지 추적한다.
문서를 인쇄할 때마다 카운트를 늘려 몇 번째로 출력되는지를 찾는다.
내가 찾는 문서가 가장 앞에 있고, 중요도가 최댓값과 같다면 그 때 출력할 수 있음을 유의하며 코드를 작성한다.
코드
from collections import deque
t = int(input())
for _ in range(t):
n, m = map(int, input().split())
lst = list(map(int, input().split()))
q = deque()
cnt = 1
for i in lst:
q.append(i)
while True:
if max(q) == q[0]:
if m == 0:
print(cnt)
break
else:
q.popleft()
cnt += 1
if m == 0:
m = len(q) - 1
else:
m -= 1
else:
x = q.popleft()
q.append(x)
if m == 0:
m = len(q) - 1
else:
m -= 1