プログラマプリンタ
質問する
重要度の高いドキュメントを先に印刷するプリンタがあります.待ち受けリストの一番前の文書(J)を待ち受けリストから取り出す. 待機リストから取り出した文書(J)よりも重要な文書がある場合は、待機リストの最後の文書に移動する それ以外の場合は、文書(J)を印刷し、何回目の印刷の に戻る.
優先度:印刷するリスト
location:私が要求したドキュメントのインデックス
印刷ジョブの重要性は1~9で、数字が大きいほど重要です
例
ドキュメントA=優先度[0]のみを1の重要度で要求します.
Aに戻るのは何回目の印刷ですか
C-D-E-F-A-B順に印刷します.
戻り値は5です.(Aは5位)
コード#コード#
List=印刷対象リスト
document=私が要求したドキュメント
count=印刷回数
current=優先度の一番前のドキュメント
重要度の高いドキュメントを先に印刷するプリンタがあります.
優先度:印刷するリスト
location:私が要求したドキュメントのインデックス
印刷ジョブの重要性は1~9で、数字が大きいほど重要です
例
priorities = [1,1,9,1,1,1] location = 0
優先度の値が[A,B,C,D,E,F]の場合、ドキュメントA=優先度[0]のみを1の重要度で要求します.
Aに戻るのは何回目の印刷ですか
C-D-E-F-A-B順に印刷します.
戻り値は5です.(Aは5位)
コード#コード#
List=印刷対象リスト
document=私が要求したドキュメント
count=印刷回数
current=優先度の一番前のドキュメント
function solution(priorities, location) {
// 대기목록을 만든다
// 인쇄목록.map((value, index) =>
// {내가 요청한 문서의 인덱스는 location, value: value})
let list = priorities.map((target, index) => ({
document: index === location,
value: target,
}));
let count = 0;
while (priorities.length > 0) {
// 맨 앞 문서를 대기목록에서 꺼내고
let current = list.shift();
// 중요도가 더 큰 문서가 있다면 현재문서를 대기목록의 맨 뒤로 보내기
if (list.some((target) => target.value > current.value)) {
list.push(current);
}
// 현재 문서(맨 앞)보다 중요도가 높은 문서가 없다면
else {
// 카운트에 1을 더하고
count++;
// document: index === location(0) 이 참이라면 1을 리턴
if (current.document) return count;
}
}
}
Reference
この問題について(プログラマプリンタ), 我々は、より多くの情報をここで見つけました https://velog.io/@elinapark/프로그래머스-프린터テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol