programmers [H-Index]


H-Index


問題の説明


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

せいげんじょうけん


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

I/O例


citations return
[3, 0, 6, 1, 5] 3

I/O例説明


この科学者が発表した論文は5編あり、そのうち3編は3回以上引用された.また、残りの2つの論文は3回以下引用されたので、この科学者のh-indexは3である.
import java.util.*;

class Solution {
    public int solution(int[] citations) {
        int answer = 0;
        Integer[] citationss = Arrays.stream(citations).boxed().toArray(Integer[]::new); // int형 -> Integer형변환
        Arrays.sort(citationss, (a,b) -> b - a); // 배열 내림차순 정렬 시 int(x) Integer(o)
        for(int i = 0; i < citationss.length; i++){
            if((i + 1) > citationss[i]){
                return i;
            }
        }
        return answer == 0 ? citationss.length : answer;
    }
}
function solution(citations) {
    let answer = 0;
    citations.sort((a, b) => b - a);
    
    for(let i = 0; i < citations.length; i++){
        if(i + 1 > citations[i]){
            return i;
        }
    }
    return answer == 0 ? citations.length : answer;
}