[프로그래머스] 코딩테스트 연습 - 46

krkorklo·2022년 2월 10일
0

프로그래머스

목록 보기
46/78

level 2 - H-Index

어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다.
어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요.

입출력 예시
citations : [3, 0, 6, 1, 5]
-> 3

function solution(citations) {
    var answer = 0;
    var max = Math.max(...citations);
    for (var i=0; i<=max; i++) {
        var count = citations.filter((c) => c >= i).length;
        console.log(i, count)
        if (count >= i) answer = Math.max(answer, i);
    }
    return answer;
}

쉽게 풀었다고 생각했는데 내가 나름 복잡하게 생각한거더라.

function solution(citations) {
    var answer = 0;
    citations.sort((a, b) => b - a);
    while(answer + 1 <= citations[answer]) answer++;
    
    return answer;
}

훨씬 쉽게 풀 수도 있었음.

0개의 댓글