문제 링크
H-Index
풀이
- 문제가 뭔소린가 했는데, 오히려 링크로 준 꺼무위키를 보고 이해했다.
- H-Index는 h번 이상 인용된 논문이 h편 이상인 h의 최댓값이다.
- 먼저 배열을 정렬해준다. (오름 차순)
- for문을 돌면서 배열 길이에서 현재 인덱스를 빼주면, 현재 인덱스보다 큰, 즉 현재 인덱스 값의 논문이 인용된 개수가 나온다.
- 그 값이 만약에 배열에서 현재 인덱스 값보다 작거나 같다면?
( 배열의 현재 인덱스 값 번 이상 인용된 논문이 위에서 구한 논문이 인용된 편 이상)
- 그 자리에서 for 문을 break해준다. 왜냐면 h값은 뒤로갈수록 점점 작아지기 때문.
import java.util.Arrays;
class Solution {
public int solution(int[] citations) {
Arrays.sort(citations);
int answer = 0;
for(int i = 0; i < citations.length; i ++){
int h = citations.length - i;
if(citations[i] >= h){
answer = h;
break;
}
}
return answer;
}
}