문제 보러 가기 👈 클릭!
큐 자료구조에 (인덱스, 문서의중요도)를 입력받은 문서의 중요도 배열 순서대로 넣는다.
가장 큰 중요도를 구한다.
맨 앞 문서의 중요도가 가장 큰 중요도보다 작을경우, pop하고 맨 뒤에 push 한다.
가장 큰 중요도보다 같을경우 pop하고, 내가 인쇄를 요청한 문서인지 인덱스를 통해 확인한다.
내가 인쇄를 요청한 문서가 맞다면 인쇄 순서를 return하고 종료한다.
구현 코드👇
#큐 자료구조 사용 (FIFO)
#문서의 중요도 배열 priorities / 내 문서 위치 location
#내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 return
from collections import deque
def solution(priorities, location):
cnt = 0
q = deque(list(enumerate(priorities)))
while q:
max_p = max([tp[1] for tp in q])
if q[0][1] < max_p:
q.append(q.popleft())
else:
document = q.popleft()
cnt += 1
if document[0] == location:
return cnt
📝 any() 를 사용하여 맨 앞에 있는 문서보다 중요도가 높은 문서가 있는지 확인하는 방법도 있음