문제명: H-Index 논문 인용
문제설명
H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다.
어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다.
어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고
나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다.
(...생략)
문제풀이
문제설명을 몇 번 봐도 이해가 잘 안됐던 케이스..
결국 H-index에 대해 좀 더 설명이 필요해서 [연구논문을 위한 핵심 10단계] H-지수(H-Index) 란 무엇인가? 라는 글을 읽고나서
바로 이해하게 되었다.
결론은 피인용수(Citation)이 그 만큼 인용된 논문 수보다 같거나 작아지는 그 시점이 H-index다.
문제를 이해하는 데 시간이 걸렸지만 푸는 시간은 금방이었다.
역시 문제를 이해하는 게 제일 중요하다!
function solution(citations) {
var answer = 0;
// H-Index 변수
// 내림차순 정렬
citations = citations.sort((a, b) => b-a);
for(let i = 0; i < citations.length; i++) {
if(answer >= citations[i]) return answer
else answer++
}
return answer
}
// test case 1 => 1
console.log(solution([3, 0, 6, 1, 5]))
// test case 2 => 7
console.log(solution([3, 4, 5, 11, 15, 16, 17, 18, 19, 20]))