특정 연구원이 일정 기간 동안 수행한 인용 횟수를 나타내는 양의 정수 배열이 있다고 가정합니다.
우리는 그러한 배열을 취하는 JavaScript 함수를 작성해야 하며 함수는 배열이 나타내는 인용 데이터를 기반으로 해당 연구원의 h-인덱스를 찾아야 합니다.
H-색인:
자신의 경력에서 N번의 인용을 수행한 연구원을 생각해 보십시오. 그러면 연구자는 N개의 논문 중 h가 각각 최소 h회 인용되고 다른 N-h개의 논문이 각각 h회 이하인 경우 인덱스 h를 가집니다.
예를 들어 -
인용 배열이 -
인 경우const arr = [1, 6, 3, 0, 5];
이 데이터는 연구자가 총 5편의 논문을 가지고 있고 각각이 각각 1, 6, 3, 0, 5회 인용되었음을 나타냅니다.
그리고 연구원은 각각 3회 이상 인용된 3개의 논문을 가지고 있고 나머지 2개는 각각 3회 이하로 인용되었으므로 h-index는 3입니다.
따라서 이 배열의 출력은 -
여야 합니다.const output = 3;
예시
다음은 코드입니다 -
const arr = [1, 6, 3, 0, 5];
const findHIndex = (arr = []) => {
let possible = [];
let { length: len } = arr;
if (len === 0){
return 0;
};
possible.length = len + 2;
possible = possible.join('-').split('').map(() => 0);
for (let i = 0; i < len; i ++) {
let val = arr[i];
let ind = val > len ? len : val;
possible[ind] += 1;
}
let result = 0;
for (let k = len; k >= 0; k --) {
result += possible[k];
if (result >= k) {
return k;
}
}
};
console.log(findHIndex(arr)); 출력
다음은 콘솔 출력입니다 -
3