[프로그래머스]H-Index (JS)
전체코드
function solution(citations) {
let answer = citations.length;
citations.sort((a, b) => b - a);
for (let i = 0; i < citations.length; i++) {
if (citations[i] < i + 1) {
answer = i;
break;
}
}
return answer;
}
문제풀이
1. answer을 발표한 논문의 수로 지정하고 citations를 오름차순으로 정리한다.
let answer = citations.length;
citations.sort((a, b) => b - a);
- 발표한 논문의 수(citations.length)를 answer의 값으로 정한다.
- 논문별 인용 횟수와 발표한 논문의 수를 비교하기 위해 citations를 논문별 인용 횟수가 가장 큰 순(올림차순)으로 정리한다.
2. for문을 사용하여 비교한다.
for (let i = 0; i < citations.length; i++) {
if (citations[i] < i + 1) {
answer = i;
break;
}
}
return answer;
- for문을 사용하여 논문별 인용 횟수(citations[i])와 해당 인용 횟수의 순위(i + 1)를 비교하고 순위보다 인용 횟수가 작다면 해당 인용 횟수의 전 순위(i)가 이 과학자의 H-Index 값(answer=i)이다.
- 값을 구했다면 for문을 멈추고 값을 return한다.
여담
문제에 나온 H-Index의 개념이 이해가 안되 여러번 읽어보고 구글로도 찾아보고 풀었다. 개념이 이해되니 코드는 생각보다 빨리 나온 문제!
Author And Source
이 문제에 관하여([프로그래머스]H-Index (JS)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@chumil7432/프로그래머스H-Index-JS저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)