[プログラマー]H-Index(JS)


完全なコード

function solution(citations) {
       let answer = citations.length;
        citations.sort((a, b) => b - a);

        for (let i = 0; i < citations.length; i++) {
          if (citations[i] < i + 1) {
            answer = i;
            break;
          }
        }
        return answer;
}

問題を解く


1.発表論文の数を指定し、昇順に引用文を整理する。

       let answer = citations.length;
        citations.sort((a, b) => b - a);
  • で発表された論文の数(引用文.length)を答えの値とする.
  • 編の論文の引用回数と発表された論文の数を比較するために,引用文を各論文の引用回数が最大となる順序(昇順)に整理した.
  • 2.for文で比較します。

            for (let i = 0; i < citations.length; i++) {
              if (citations[i] < i + 1) {
                answer = i;
                break;
              }
            }
            
             return answer;
  • for文を使用して、各論文の引用回数(引用[i])と対応する引用回数の順位(i+1)を比較し、引用回数が順位より小さい場合、その引用回数の上位(i)は科学者のH-Index値(答え=i)である.
  • の値がすでに得られている場合は、for文を停止し、値を返します.
  • おしゃべり



    質問に出てきたH-Indexの概念を理解せず、繰り返し読み、Google検索で解答します.概念を理解して、コードは想像以上に速い!