Lv 1. 失敗率


📚 質問する


失敗率
https://programmers.co.kr/learn/courses/30/lessons/42889

💡 に近づく

  • 失敗率の計算
    アルゴリズムで実現するために,ルールを探す努力をする.

    なるべくfor文は使わないようにしていますが、stage 1~Nの失敗率が求められ、for文しかないようなので、for文で失敗率を求めるアルゴリズムを作成しました.
    まず,=stages配列における分子の1からN個のステージ上のプレイヤー数.
    分母=ステージ以上のプレイヤー数
    計算を実装するコード
  • 配列のオブジェクト
    失敗率を求め,大きな開始から並べ替え,対応する失敗率のインデックスを返すアルゴリズムで近似する.
    1つの配列に{stage:失敗率}からなるオブジェクトを割り当て、配列を返すコードを実現するためにstageを再割り当てします.
  • ▼コード

    function solution(N, stages) {
        let rateArr = []; // 실패율 할당 배열
    
        for (let i = 1; i <= N; i++){
            let rate = stages.filter(value => value === i).length / stages.filter(value => value >= i).length // filter메소드로 조건에 맞는 플레이어의 수만 걸러서 실패율 계산
            rateArr.push({stage : i, rate : rate}) // 배열안에 {stage : rate} 객체 push
        }
    
        rateArr.sort((a,b) => b.rate - a.rate) // rate를 정렬
    
        return rateArr.map(el => el.stage) // map메소드로 정렬된 객체의 stage만 새로운 배열에 return해줌
    }

    📝 コメント


    オブジェクトを配列に入れることができるのは知っていますが、私は関連する問題を解決したことがないようです.
    sort,mapなどの手法も配列でしか使用されていないが,配列中のオブジェクトにアクセスするコードは実現されていないため,多くの検索が行われている.
    私はあなたにもっと対象構造を熟知させるように努力します!