[プログラマー]-プリンタ(Python)
3929 ワード
問題の説明
一般的なプリンタでは、必要な印刷順に印刷されます.したがって、重要なドキュメントは後で印刷される可能性があります.この問題を解決するために,重要文書を先に印刷するプリンタを開発した.この新しく開発されたプリンタは、次のように印刷されます.
印刷待ちリスト
例えば、4つの文書(A、B、C、D)が印刷対象リストに順次存在し、重要度が2 1 3 2の場合、CD A Bの順に印刷される.
ソリューション関数を作成してください.パラメータが現在のキュー・リスト内のドキュメントの重要度のソート順と、印刷を要求したドキュメントが現在のキュー・リスト内にある場所を指定した場合、印刷を要求したドキュメントの何回目の印刷かを返します.
せいげんじょうけん
I/O例
prioritieslocationreturn[2, 1, 3, 2]21[1, 1, 9, 1, 1, 1]05
I/O例説明
問題の例は次のとおりです.
6つの文書(A、B、C、D、E、F)は、印刷対象リストにおいて、重要度が1 1 1 1 9 1 1 1 1であり、C D E F A Bの順に印刷される.
def solution(priorities, location):
L = [i for i in range(len(priorities))] # 인덱스 저장하는 리스트
i = 0
while priorities != sorted(priorities, reverse=True):
if priorities[i] < max(priorities[i+1:]):
# 인덱스 저장한 리스트와 원래 리스트 둘 다
# 맨 앞값을 빼서 리스트 뒤로 더해준다
priorities.append(priorities.pop(i))
L.append(L.pop(i))
else:
i += 1 # 만약 맨 앞이 가장 크다면 한칸 넘어간다
return L.index(location)+1
Reference
この問題について([プログラマー]-プリンタ(Python)), 我々は、より多くの情報をここで見つけました https://velog.io/@ssulee0206/프로그래머스-프린터파이썬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol