
아래 프로그래머스 로고를 클릭하면 해당 문제로 이동합니다 😀
이거 진짜 문제 너무 불친절합니다. 입출력 예시좀 더주세요.
[연구논문을 위한 핵심 10단계]H-Index란 무엇인가?를 보면 H-지수가 뭔지 잘 설명해준다. (문제 풀면서 이런것도 찾아봐야하나요 ? 이게 맞나요 ? 이거 진짜에요 ?)
정리하자면, 가장 많이 인용된 논문 순으로 정렬을 하고(내림차순 정렬) 피인용수가 논문 수와 같아지거나 작아졌을때의 숫자가 H-Index라는 것!
문제만 이해하면 코드는 진짜 쉽게 짤 수 있다.
python에선 enumerate를 이용해 인덱스를 받아 논문수로 이용했고, js에선 forEach를 이용했다.
# 내림차순으로 정렬하고, 인용수가 논문수랑 같아지는 지점 체크(논문수 1부터 증가, idx 이용)
def solution(citations):
answer = 0
citations.sort(reverse=True)
for cnt, citation in enumerate(citations):
if citation >= cnt+1:
answer = cnt+1
return answer
function solution(citations) {
var answer = 0;
// 내림차순 정렬
citations.sort((a, b) => b-a);
[...citations].forEach((v, i) => {
if(v >= i+1) answer = i+1
});
return answer;
}
