Programmers Stack&Queueプリンタ
1917 ワード
[スタック/キュー]プリンタ
Link: https://programmers.co.kr/learn/courses/30/lessons/42587
問題の説明
一般的なプリンタでは、必要な印刷順に印刷されます.したがって、重要なドキュメントは後で印刷される可能性があります.この問題を解決するために,重要文書を先に印刷するプリンタを開発した.この新しく開発されたプリンタは、次のように印刷されます.
印刷待ちリストから、先頭の文書(J)を取り出す. 残りの個の印刷対象リストにJよりも重要なドキュメントがある場合は、Jを印刷対象リストの最後に配置します. でなければJを印刷します.
例えば、4つの文書(A、B、C、D)が印刷対象リストに順次存在し、重要度が2 1 3 2の場合、CD A Bの順に印刷される. 私が印刷を要求したドキュメントが何回目の印刷なのか知りたいです.上記の例では、Cは1位、Aは3位である.
ソリューション関数を作成してください.パラメータが現在のキュー・リスト内のドキュメントの重要度のソート順と、印刷を要求したドキュメントが現在のキュー・リスト内にある場所を指定した場合、印刷を要求したドキュメントの何回目の印刷かを返します.
せいげんじょうけん現在の待機リストには、1つ以上の100個のドキュメントが含まれています. 印刷ジョブの重要性は1から9で表され、数字が大きいほど重要である. の位置の値は0より大きく(現在のキューリストのタスク数-1)、キューリストの先頭に0、2番目の位置に1と表示されます. I/O例
priorities location return
[2, 1, 3, 2] 2 1
[1, 1, 9, 1, 1, 1] 0 5
I/O例説明
例2
6つの文書(A、B、C、D、E、F)は、印刷対象リストにおいて、重要度が1 1 1 1 9 1 1 1 1であり、C D E F A Bの順に印刷される.
Code | Python
Link: https://programmers.co.kr/learn/courses/30/lessons/42587
問題の説明
一般的なプリンタでは、必要な印刷順に印刷されます.したがって、重要なドキュメントは後で印刷される可能性があります.この問題を解決するために,重要文書を先に印刷するプリンタを開発した.この新しく開発されたプリンタは、次のように印刷されます.
印刷待ちリスト
例えば、4つの文書(A、B、C、D)が印刷対象リストに順次存在し、重要度が2 1 3 2の場合、CD A Bの順に印刷される.
ソリューション関数を作成してください.パラメータが現在のキュー・リスト内のドキュメントの重要度のソート順と、印刷を要求したドキュメントが現在のキュー・リスト内にある場所を指定した場合、印刷を要求したドキュメントの何回目の印刷かを返します.
せいげんじょうけん
priorities location return
[2, 1, 3, 2] 2 1
[1, 1, 9, 1, 1, 1] 0 5
I/O例説明
例2
6つの文書(A、B、C、D、E、F)は、印刷対象リストにおいて、重要度が1 1 1 1 9 1 1 1 1であり、C D E F A Bの順に印刷される.
Code | Python
def solution(priorities, location):
answer_list = []
index = []
#index 리스트에 인덱스 넣어주기
for i in range(len(priorities)):
index.append(i)
#prioirities 리스트가 0일때까지 루프
while len(priorities) > 0:
#만약 첫번째 인덱스에 있는 priorities가 가장 크다면 answer_list에 그수의 인덱스를 push
if priorities[0] == max(priorities):
answer_list.append(index[0])
#그렇지 않다면 가장뒤로 push
else:
index.append(index[0])
priorities.append(priorities[0])
priorities.pop(0)
index.pop(0)
#answer_list에서 location과 같은 수의 인덱스를 answer에 +1해준다.
for i in range(len(answer_list)):
if answer_list[i]==location:
return i+1
Output | Screen ShotReference
この問題について(Programmers Stack&Queueプリンタ), 我々は、より多くの情報をここで見つけました https://velog.io/@kakasi18/ProgrammersStackQueue프린터テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol