문제링크

https://programmers.co.kr/learn/courses/30/lessons/42747

 

코딩테스트 연습 - H-Index

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

programmers.co.kr

풀이

def solution(citations):
    answer = 0
    n = len(citations)
    citations.sort(reverse=True)
    for i in range(n):
        h = i
        if citations[i] <= h:
            answer = h
            break
        elif citations[i] > h:
            answer = n
    return answer

아직 잘 이해를 하지 못했다. 반복문을 풀어쓰면 이렇게 된다.

i = 0, 6 <= 0 -> x
i = 1, 5 <= 1 -> x
i = 2, 3 <= 2 -> x
i = 3, 1 <= 3 ->  x

인덱스가 인용된 편수를 말하기 때문에 3번 이상 인용된 논문의 편수가 3개 이상인 걸로 결과가 나온다.

문제에 첨부된 링크에서 H-Index에 관한 설명은 내림차순 정렬 후, h-index (f) = max{i∈N : f(i) ≥ i} 라는데 반대로 푼 것 같다