https://www.acmicpc.net/problem/1966

리스트의 최고값인 우선순위를 뽑아낼때마다 m값이 감소하는 형식으로 구현해야하는데 그러다보면 결국 m < 0이 되는 경우에 m 값을 다시 재설정하지 않아서 시간이 오래걸렸다. 아무리 고민해도 잘 안풀려
https://thisismi.tistory.com/entry/%EB%B0%B1%EC%A4%80-1966%EB%B2%88-%ED%94%84%EB%A6%B0%ED%84%B0-%ED%81%90-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%A0%95%EB%8B%B5-%EC%BD%94%EB%93%9C 님의 글을 참고하였다
import sys
from collections import deque
t = int(sys.stdin.readline())
for i in range(t):
# 큐 크기, 필요로 하는 사이클
n,m = map(int, sys.stdin.readline().split())
q = deque(list(map(int, sys.stdin.readline().split())))
cnt = 0
# 큐를 돌면서
while q:
# 우선순위 첫번쨰
maxN = max(q)
# 현재 맨 첫번째 프린팅 되는 수
front = q.popleft()
# 한 사이클이 돌아갔다
m -= 1
# 뽑은 값이 최대값이면
if front == maxN:
# 순서가 올라감
cnt += 1
# 아직 뽑아야하는 사이클이 남았으면 더 진행하지만 만약 모두 뽑은경우라면
if m < 0:
# 값 출력하기
print(cnt)
break
# 근데 만약 값이 아니라면
else:
# 다시 큐에 넣어주면서 큐 크기 유지해주기
q.append(front)
# 근데 만약 이미 돌아야하는 사이클을 다 돌았음에도 최대값읆 못찾았으면
# 사이클 재설정이 필요함
if m < 0:
# 중요도가 더 높은 문서가 남아있으니 다시 돌아야 하므로
# 맨 뒤로 이동해야 하므로 m == len(큐) - 1
m = len(q) - 1```