이 문제도 '나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다.'를 보고 deque.rotate()가 떠올랐다
각 문서들의 위치를 같이 queue 형태로 만들어서 관리하고, 중요도가 가장 높으면서도 원하는 위치의 문서가 출력될 때까지 queue를 rotate 하면서 그 때의 idx가 location과 동일한지 확인한다
그리고 최대값을 업데이트 하기 위해 queue에서 popleft로 끝나는 것이 아니라, priorities에서 최대값을 삭제하면서 남은 중요도들을 업데이트 한다
from collections import deque
def solution(priorities, location):
answer = 0
q = deque()
for i in range(len(priorities)):
q.append((priorities[i],i))
while q:
#중요도가 가장 높지 않은 경우
if q[0][0]!=max(priorities):
q.rotate(-1)
else:
#중요도가 가장 높으면서 찾는 위치의 문서인경우
if q[0][1]==location:
answer+=1
break
#중요도가 가장 높지만 찾는 위치의 문서가 아닌 경우
answer+=1
q.popleft()
priorities.remove(max(priorities)) #최대값을 삭제하면서 업데이트 해줘야한다
return answer