[プログラマー]失敗率


🤔 質問する


2019 KAKAO BLIND RECRUITMENT


スーパーゲーム開発者のオレリーは大きな悩みに陥った.彼女が作ったブランド「呉天成」は大きな成功を収めたが、最近は新しいユーザーの数が激減している.なぜなら、新しいユーザーと既存のユーザーの間の舞台の違いが大きすぎるからです.
どうすればいいか悩んだ彼女は、ゲームの時間を動的に増やして難易度を調整することにした.やはりスーパー開発者であり、ほとんどのロジックは実現しやすいが、失敗率を探す部分で危機に陥っている.
  • 失敗率:
    ステージに到着しても未クリアのプレイヤー数/ステージに到着したプレイヤー数
  • ステージ全体N、ゲームユーザが停止したステージ番号の並び段階を含む
  • ステージ1~N+1を含む自然数
  • 失敗率の高い舞台から順に戻る
  • プレイヤーがステージに到着しなければ、そのステージの失敗率は0
  • 解関数を完了し、失敗率の高いステージからステージ番号を含む配列を降順に返します.

    💡 に近づく

  • 舞台による創作.
  • 失敗率を求めるため、ステージに到達したプレイヤー数とクリアしていないプレイヤー数を求める.
  • 失敗率のみでソートした場合、どのステージが事前にソートされているのかわからないので、オブジェクト形式で失敗率をまとめて並べます.
  • 収集失敗率の配列では、失敗率の高い順に並べ替えられ、並べ替えられた配列ではステージのみが返される.
  • 🧑🏻‍💻 コード#コード#


    最初は、3つ近くの過程で塞がれていました.配列のインデックスだけを抽出したり、新しい配列に再入れて並べ替えたりする方法を考えたことがありますが、何か間違っている点があると思いますので、オブジェクトを利用することを考えたときに、2つのリストを作成するときにtodos配列の構造を考えました.この方法を適用すれば簡単に解決できる.
    let failure = [
      {stage: 1, failureRate: 0.1},
      {stage: 2, failureRate: 0.5},
      ... ,
      {stage: N, failureRate}
    ];

    📝 リファレンス


    MDN - Array.prototype.filter()
    MDN - Array.prototype.sort()