プログラマー-H-Index

873 ワード

問題の説明


H-Indexは科学者の生産力と影響力を測定する指標である.ある科学者のh-indexを表すh値を求めたいです.ウィキペディア1によると、H-Indexの計算は以下の通り.
ある科学者が発表したn編の論文の中で、h編以上の論文を引用し、残りの論文がh次以下に引用された場合、hの最高価格はこの科学者のh-indexである.
ある科学者が論文を発表する引用回数の配列参照をパラメータとして与えた場合,その科学者のH−Indexを返すために解関数を記述してください.

せいげんじょうけん

  • 科学者が発表した論文の数は1編以上1000編以下である.
  • 論文の引用回数は0回以上10000回以下である.
  • 解答と後期


    一番よく整理されたコードだと思います
    答えは-1だとは思わなかった配列の末尾がh-indexを満たすまで、他の人のテスト例を追加します.
    符号化テストを行う場合、このような状況に対して多くのエラーを犯すことが多い.
    EdgeCaseを思い浮かべる人がうらやましい
    function solution(citations) {
        var answer = 0;
        answer=citations.sort((a,b)=>(b-a)).map((a,b)=>(b-a)).findIndex(v=>v>=0)
        //정렬후, 인덱스에서 값을 뺀다. 값이 인덱스보다 큰경우면 음수이고 이때의 인덱스가 H-index를 만족한다.
        if(answer==-1)//엣지케이스 배열의 끝까지 H-index를 만족하는경우
            return citations.length;
        return answer;
    }