h
와 H-index
가 의미하는 점이 이해하기 어려운것 같다.
h
들을 구해서 h
의 최댓값(인용된 논문수)인 H-index
를 반환하는 문제이다.
순서와 상관없이 갯수를 구하는 문제이므로 정렬을 사용하자
import java.util.Arrrays;
Arrays.sort(citations);
먼저 h
의 의미를 이해해야한다. citations[i]
번째 요소의 값에 대해 citations[i]
보다 더 많이 인용된 논문의 수이다.
h
들을 비교하여 최대값인 h
가 H-index
가 된다.
1.h
값을 구한다.
2.구한 h
값이 최댓값인지 비교한다.
for(int i=0;i<citations.length;i++){ int h = Math.min(citations[i],citations.length - i); //h번 이상 인용된 논문이 h편 이상인지 answer = Math.max(answer,h); // h의 최댓값 }
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 = Math.min(citations[i],citations.length - i); //h번 이상 인용된 논문이 h편 이상인지
answer = Math.max(answer,h); // h의 최댓값
}
return answer;
}
}