
이번 문제를 보면서 느낀 것은 문제 해석 능력을 길러야 할 필요가 있다고 생각했다. 문제의 핵심 부분은 '어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index' 인데, 여기서 h라는 기준이 어떻게 되는건지 너무 애매했다. 문제만 이해하면 알고리즘은 쉽게 해결할 수 있었다.

이런 느낌으로 다가 citations 길이를 h에 대입하고 처음부터 하나 씩 -1 하면서 해당 citations에 들어있는 index 값을 비교해 정답을 찾으면 된다.
문제 이해가 너무 어렵다면, 예제를 보고 이해를 하는 것도 하나의 방법이다. (하지만 어려움....)
결국 citations를 Arrays.sort(논문) 을 사용 후, h값 기준으로 논문 하나 씩 조건에 맞는 인용 수의 값을 찾으면 되는 문제였다.
import java.util.Arrays;
class Solution {
public int solution(int[] citations) {
int answer = 0;
Arrays.sort(citations);
for (int i = 0; i < citations.length; i++) {
int tmp = citations.length - i;
if (citations[i] >= tmp) {
answer = tmp;
break;
}
}
return answer;
}
}