[프로그래스/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

좋은 웹페이지 즐겨찾기