DM Log

[정렬] H-Index - Python / JavaScript 본문

알고리즘/프로그래머스

[정렬] H-Index - Python / JavaScript

Dev. Dong 2025. 3. 29. 14:06

문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/42747

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

[문제 간단 요약]

1. H-Index  지표를 구하는 문제

2. 논문 n편 중, h번 이상 인용된 논문 h 편 이상인 h의 최댓값을 구하는 문제

[문제 해결 방안]

1. 배열을 역순으로 정렬하여 논문 인용 수 보다 논문 수(배열의 index + 1)가 작을 때의 논문 수 - 1 값이 정답

2. 모든 논문이 자신보다 많은 인용을 받았다면 H-Index는 전체 논문 수 정답

 

[예시]

논문 인용 수 논문 수 조건 부합
6 1
5 2
3 3
1 4
0 5
논문 인용 수 논문 수 조건 부합
6 1
6 2
6 3
6 4
6 5

[문제 해결 코드 - python]

def solution(citations):
    answer = 0
    citations.sort(reverse = True)
    for i, citation in enumerate(citations):
        if citation < i+1:
            return i
            break
    return len(citations)

 

[문제 해결 코드 - javascript]

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