
내가 작성한 코드
import java.util.*;
class Solution {
public int solution(int[] citations) {
Arrays.sort(citations);
int n = citations.length;
int answer = 0;
for (int i = 0; i < n; i++) {
if(citations[i] >= n - i) {
answer = n - i;
break;
}
}
return answer;
}
}
다른 사람의 코드
import java.util.*;
class Solution {
public int solution(int[] citations) {
Arrays.sort(citations); // 논문 인용 횟수를 오름차순 정렬
int max = 0;
// 뒤에서부터(가장 큰 인용수부터) h-index 후보를 찾음
for(int i = citations.length-1; i > -1; i--){
// 현재 논문의 인용수와, 남은 논문 수 중 작은 값을 min에 저장
int min = (int)Math.min(citations[i], citations.length - i);
// max보다 min이 크면 max를 갱신
if(max < min) max = min;
}
return max; // 최종 h-index 반환
}
}
- 각 논문마다 "인용수"와 "해당 인용수 이상인 논문 개수" 중 작은 값을 구해, 그 중 최대값을 h-index로 반환
Share article