Hirsch index
, 학술 연구자의 학문적 영향력을 측정하는 지표 중 하나에요. 연구자가 발표한 논문들의 인용 횟수를 기반으로 계산돼요. 간단히 말하면, H-Index는 얼마나 많은 논문이 얼마나 많이 인용되었는지를 나타내는 지표에요. 예를 들어, h-index가 10이라면 해당 연구자의 논문 중 10개 이상이 각각 10번 이상 인용되었다는 의미에요.
import java.util.*;
class Solution {
public int solution(int[] citations) {
Arrays.sort(citations);
int max = citations[citations.length - 1];
for (int i = max; i > 0; i--) {
int count = 0;
for (int n : citations) {
if (n >= i) {
count++;
}
}
if (count >= i) {
return i;
}
count = 0;
}
return 0;
}
}
citations
배열을 먼저 오름차순 정렬해요.citations
배열의 길이를 이용해 인용 횟수의 최댓값을 구해요.H-Index
를 찾는 방법이에요.citations
배열을 순회하면서 각 인용 횟수(n)가 현재의 숫자(i)보다 크거나 같은 경우, count 변수를 증가시키고, 내부 반복문이 끝나면, count 변수와 현재의 숫자(i)를 비교하여 count가 i보다 크거나 같은 경우, 현재의 숫자(i)를 반환해요.import java.util.*;
class Solution {
public int solution(int[] citations) {
Arrays.sort(citations);
int max = 0;
for (int i = citations.length-1; i > -1; i--){
int min = (int)Math.min(citations[i], citations.length - i);
if (max < min) {
max = min;
}
}
return max;
}
}
citations
배열을 먼저 오름차순 정렬해요.citations[i]
와 citations.length - i
중 작은 값을 선택하여 최소 인용 횟수(min)를 구해요.H-Index
를 구하는 코드이지만 약간의 차이가 있어요.반복문의 범위
: 첫 번째 풀이에서는 max부터 0까지 반복문을 실행했지만, 두 번째 풀이에서는 배열의 끝부터 시작하여 역순으로 반복문을 실행해요.최소 인용 횟수 계산
: 첫 번째 풀이에서는 내부 반복문을 사용하여 각 인용 횟수(n)가 현재의 숫자(i)보다 크거나 같은 경우 count 변수를 증가시키고, 반복문이 끝나면 count와 현재의 숫자(i)를 비교하여 count가 i보다 크거나 같은 경우 현재의 숫자(i)를 반환해요. 하지만 두 번째 풀이에서는 Math.min() 함수를 사용하여 citations[i]와 citations.length - i 중에서 작은 값을 선택하여 최소 인용 횟수(min)를 구해요.최대 인용 횟수 저장
: 첫 번째 풀이에서는 count 변수와 max 변수를 사용하여 최대 인용 횟수를 저장하고 반환해요. 하지만 두 번째 풀이에서는 max 변수와 min 값을 비교하여 더 큰 값을 max에 저장해요.