[プログラマー-EVL 2]-H-Index


リンク


H-Index

問題の説明


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

せいげんじょうけん

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

  • に答える


    1回目の解答では、h回以上、h回以下の部分が理解できなかったので、ずっと間違えていました.しかし、問題をよく読んだ後、李河は再び問題を解き始めた.したがって,ソート後,hをインデックス+1とし,問題のように解アルゴリズムも容易である.

    Code

    import java.util.*;
    
    class Solution {
        public int solution(int[] citations) {
            int answer = 0;
            Arrays.sort(citations);
            for(int i=0; i<citations.length; i++)
            {
                int h=i+1;
                int up=0;
                int down=0;
                for(int j=0; j<citations.length; j++)
                {
                    if(h <= citations[j])
                        down++;
                    
                    if(h>=citations[j])
                        up++;   
                }
                if(h>=up && h<=down)
                    answer=i+1;
            }
            return answer;
        }
    }