특정 연구원이 일정 기간 동안 수행한 인용 횟수를 나타내는 양의 정수 배열이 있다고 가정합니다.
우리는 그러한 배열을 취하는 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