프린세스 다이어리

[프로그래머스] H-index 문제 자바스크립트 풀이 본문

자료구조, 알고리즘

[프로그래머스] H-index 문제 자바스크립트 풀이

개발공주 2021. 11. 2. 12:49
728x90

 

> 문제 바로가기

 

코딩테스트 연습 - H-Index

H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표

programmers.co.kr

 

 

1. 접근 방법

 

(1) 내림차순으로 정렬한다.

let arr = citations.sort((a, b) => b - a);

 

(2) 정렬한 배열을 반복문을 돌면서 각 논문의 인용 수와 인덱스(논문 수)를 비교한다. 논문의 인용 수가 논문 수보다 크면 논문 수를 1씩 더하고, 같으면 그 논문 수를 리턴한다.

    for (let i = 0; i < arr.length; i++) {
        if (arr[i] > i) {
            answer = i + 1; 
        } else if (arr[i] == i) {
            answer = i
        }
    }

else if문의 경우 11번이 계속 오답이라고 나와서, 구글검색 후 테케를 추가했다. [1, 1, 0] 을 넣었을 때 1이 나오는지 확인.

 

2. 해답 코드

 

function solution(citations) {
    let answer = 0;
    let arr = citations.sort((a, b) => b - a);
    
    if (arr[0] === 0) return 0;
    
    for (let i = 0; i < arr.length; i++) {
        if (arr[i] > i) {
            answer = i + 1; 
        } else if (arr[i] == i) {
            answer = i
        }
    }
    return answer;
}
728x90
Comments