[プログラマレベル2]プリンタ


📃 問題の説明


プリンタ


[質問元:プログラマー]

👨‍💻 解決策

1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다.問題において与えられた上記の条件に基づいて、
キューを使用して、先頭のドキュメントと残りの重要度を比較します.
元のドキュメントの順序と重要度をキューに同時に挿入し、キューに残っているドキュメントと重要度を比較するために1つずつ取り出します.
取り出すファイルほど重要なものは一つもなく印刷されます.
このときlistを使用して女子popとappendを実行するとタイムアウトが表示されます.collectionsdequeを使用しました.

👨‍💻 ソースコード

from collections import deque

def solution(priorities, location):
    answer = 0
    queue = deque()

    for i in range(len(priorities)):
        queue.append((i, priorities[i]))

    while True:
        if queue[0][1] < max(priorities):
            temp = queue.popleft()
            queue.append(temp)
        else:
            answer += 1
            if queue[0][0] == location:
                break
            queue.popleft()
priorities.pop(priorities.index(max(priorities)))

    return answer