H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다.
어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다.
어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요.
처음에 문제 이해를 잘 못해서 엄청 해맸다. 처음 주어지는 테스트케이스는 통과하는데 막상 제출하면 죄다 틀렸다고 나와서 약간 멘붕이었음.😵
예시를 보고 배열 요소 중 하나가 h 인덱스가 되는 줄 알았는데 찾아보니 그게 아니었다.
H-지수는 특정 연구원의 연구 성과를 평가하기 위한 지표로써, 발표한 논문수와 피인용수를 이용하여 보다 객관적으로 학문적 역량을 측정할 수 있습니다. H-지수는 개인뿐만 아니라 연구단체, 기관 또는 국가의 연구 성과를 측정하는 데에도 활용되고 있습니다.
나의 h는 어떻게 구할 수 있을까? 우측의 표와 같이 자신이 저널에 등재한 전체 논문중 많이 인용된 순으로 정렬한 후, 피인용수가 논문수와 같아지거나 피인용수가 논문수보다 작아지기 시작하는 숫자가 바로 나의 h가 됩니다. 이 표에서는 10이 H-지수가 되는 것입니다. 다시 말하여, 이 연구원은 논문 인용횟수가 10이 넘는 논문이 적어도 10편이 된다는 것을 의미합니다.
출처 : BRIC Bio통신원연구논문을 위한 핵심 10단계 | H-지수(H-Index) 란 무엇인가?
function solution(citations) {
let count = 0
citations = citations.sort((x, y) => y - x)
for(let i = 0; i < citations.length; i++) {
if(i+1 <= citations[i]) {
count += 1
}
}
return count
}
✔문제출처: 프로그래머스