[プロセス/Python]スタック/キュー-プリンタ



👩🏻‍🏫 に答える

from collections import deque
def solution(priorities, location):
    answer = 0
    q = deque([(v,i) for i,v in enumerate(priorities)])
    # q가 비어질때까지 
    while q:
        item = q.popleft()
        # 남은 q 원소가 있는지, 있다면 max값과 비교하여 max값보다 작다면
        if q and max(q)[0] > item[0]:
            q.append(item)
        else:
        	# 인쇄 횟수 증가
            answer += 1
            # 인쇄된 부분이 요청한 페이지와 같다면
            if item[1] == location:
                break
    return answer
  • deque()enumerate()使ってみて分かったハハ
  • エラー
  • # q = deque([(2, 0), (1, 1), (3, 2), (2, 3)])
    q = deque([(v,i) for i,v in enumerate(priorities)])
    print(max(q)[0])    # 3
    
    # err = deque([(0, 2), (1, 1), (2, 3), (3, 2)])
    err = deque([(i,v) for i,v in enumerate(priorities)])
    print(max(err)[1])  # 2