[#42889]2019 KAKAO BLIND RECRUITMENT失敗率-JavaScript
5817 ワード
問題の説明
スーパーゲーム開発者のオレリーは大きな悩みに陥った.彼女が作ったブランド「呉天成」は大きな成功を収めたが、最近は新しいユーザーの数が激減している.なぜなら、新しいユーザーと既存のユーザーの間の舞台の違いが大きすぎるからです.
どうすればいいか悩んだ彼女は、ゲームの時間を動的に増やして難易度を調整することにした.やはりスーパー開発者であり、ほとんどのロジックは実現しやすいが、失敗率を探す部分で危機に陥っている.オレリーの失敗率を求めるコードを完了します.
せいげんじょうけん
I/O例
I/O例説明
I/O例#1
1番ステージには8人のユーザーが挑戦し、そのうち1人のユーザーはまだ通関していない.そのため、1番ステージの失敗率は以下の通り.
1 번 스테이지 실패율 : 1/8
2 번 스테이지 실패율 : 3/7
3 번 스테이지 실패율 : 2/4
4번 스테이지 실패율 : 1/2
5번 스테이지 실패율 : 0/1
[3,4,2,1,5]
すべてのユーザが最後のステージにいるため、4番目のステージの失敗率は1であり、残りのステージの失敗率は0である.
[4,1,2,3]
に答える
stages
の長さは도전한 사용자의 인원 수
で、remnant
の後に格納されます.ステップを繰り返して、ステップの長さを
stages
配列内でフィルタリングすれば、ステップ아직 클리어하지 못한 인원 수
が分かる.次に[index 0]にi=対応するステップを入力し、[index 1]に
아직 클리어하지 못한 인원 수
/24579142を入れ、도전한 사용자의 인원 수 (실패율)
配列にpush後ex) `failPer` 배열
[ [ 1, 0.125 ], [ 2, 0.42 ], [ 3, 0.5 ], [ 4, 0.5 ], [ 5, 0 ] ]failPer
からremnant
を取り除き、아직 클리어하지 못한 인원 수
を貯蔵する.すべてのステップを返した後、
다음 단계에 도전할 사용자의 인원 수
配列[index 1]の降順に並べ替えます.[index 0]のみ抽出し、ステージ番号のみ出力します.
function solution(N, stages) {
let answer;
let failPer = [];
let remnant = stages.length;
for(let i=1; i<=N; i++){
const failNum = stages.filter( stage => stage === i ).length;
failPer.push([i, failNum / remnant]);
remnant -= failNum;
}
failPer.sort( (a,b) => b[1] -a[1])
answer = [...failPer.map( stage => stage[0])];
return answer;
}
Reference
この問題について([#42889]2019 KAKAO BLIND RECRUITMENT失敗率-JavaScript), 我々は、より多くの情報をここで見つけました https://velog.io/@jiseong/42889-2019-KAKAO-BLIND-RECRUITMENT-실패율-JavaScriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol