코딩테스트 연습 > 정렬 > H-Index
https://school.programmers.co.kr/learn/courses/30/lessons/42747
논문의 인용 횟수가 요소로 있는 배열 citations가 주어질 때, 이 중 h번 이상 인용된 논문이 h편 이상이고, 나머지 논문이 h번 이하 인용된 h의 최댓값을 구하라.

주어진 배열 citations를 정렬한 후, 정렬한 배열의 요소 값을 작은 수부터 현재 논문 이후의 개수와 비교한다. 비교했을 때, 논문 인용 횟수가 현재 논문 이후의 개수보다 크거나 같을 때, 이는 H-Index가 된다.
import java.util.*;
class Solution {
public int solution(int[] citations) {
int answer = 0;
int temp[] = citations;
Arrays.sort(temp);
for (int i =0; i<temp.length;i++){
int h= temp.length - i;
if(temp[i] >=h){answer = h;
break;}
}
return answer;
}
}
처음엔 문제 자체를 이해하는데 어려웠다. 정확히 무슨 말을 하는 지 몰라서 이해하는데 꽤나 걸렸다. 풀이를 시작했을 때, 예시를 보고 중간값부터 비교하면 된다는 생각으로 했지만, 이는 너무 짧게 생각한 것이었다. 두가지로 나눠서 생각하면 편한 문제였다.
1. 현재 논문 이후의 개수
2. 현재 논문의 인용 횟수가 최소 몇 이상인가?
이를 이용하면 쉬운 문제인 것 같다.

