[プログラマレベル2]プリンタ
4156 ワード
📃 問題の説明
プリンタ
[質問元:プログラマー]
👨💻 解決策 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다.
2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다.
3. 그렇지 않으면 J를 인쇄합니다.
問題において与えられた上記の条件に基づいて、
キューを使用して、先頭のドキュメントと残りの重要度を比較します.
元のドキュメントの順序と重要度をキューに同時に挿入し、キューに残っているドキュメントと重要度を比較するために1つずつ取り出します.
取り出すファイルほど重要なものは一つもなく印刷されます.
このときlistを使用して女子popとappendを実行するとタイムアウトが表示されます.collections
のdeque
を使用しました.
👨💻 ソースコード 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
Reference
この問題について([プログラマレベル2]プリンタ), 我々は、より多くの情報をここで見つけました
https://velog.io/@choiyunh/프로그래머스-Level2-프린터
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다.
2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다.
3. 그렇지 않으면 J를 인쇄합니다.
問題において与えられた上記の条件に基づいて、キューを使用して、先頭のドキュメントと残りの重要度を比較します.
元のドキュメントの順序と重要度をキューに同時に挿入し、キューに残っているドキュメントと重要度を比較するために1つずつ取り出します.
取り出すファイルほど重要なものは一つもなく印刷されます.
このときlistを使用して女子popとappendを実行するとタイムアウトが表示されます.
collections
のdeque
を使用しました.👨💻 ソースコード 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
Reference
この問題について([プログラマレベル2]プリンタ), 我々は、より多くの情報をここで見つけました
https://velog.io/@choiyunh/프로그래머스-Level2-프린터
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
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
Reference
この問題について([プログラマレベル2]プリンタ), 我々は、より多くの情報をここで見つけました https://velog.io/@choiyunh/프로그래머스-Level2-프린터テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol