LeetCode - 274. H-index

TechN0·2025년 1월 1일

알고말고 알고리즘

목록 보기
5/22

문제링크

https://leetcode.com/problems/h-index/description/

문제 번역: H-Index

H-Index는 연구자의 생산성과 연구 영향력을 측정하는 지표입니다. 연구자가 n개의 논문을 발표했을 때, 각 논문은 특정 인용 횟수를 가지고 있습니다. 이때, 연구자는 다음 조건을 만족하는 H-Index를 가집니다.

  • 조건: H-Index는 h로 정의되며,
    • 적어도 h개의 논문이 각각 최소 h번 인용되었고,
    • 나머지 논문은 각각 h번 이하로 인용된다는 조건을 충족해야 합니다.

H-Index를 계산하는 문제를 해결하세요.

입력:

  • citations: 정수로 구성된 배열. 각 요소는 해당 논문의 인용 횟수를 나타냅니다.

출력:

  • 연구자의 H-Index를 나타내는 정수.

예시

예시 1:

plaintext
코드 복사
Input: citations = [3, 0, 6, 1, 5]
Output: 3
Explanation:
- H-index는 3입니다.
  - 최소 3개의 논문이 3번 이상 인용되었습니다 ([3, 6, 5]).
  - 나머지 논문들은 각각 3번 이하로 인용되었습니다.

예시 2:

plaintext
코드 복사
Input: citations = [1, 3, 1]
Output: 1
Explanation:
- H-index는 1입니다.
  - 최소 1개의 논문이 1번 이상 인용되었습니다.
  - 나머지 논문들은 1번 이하로 인용되었습니다.

정답

class Solution(object):
    def hIndex(self, citations):
        # 인용 횟수를 내림차순으로 정렬
        citations.sort(reverse=True)
        h = 0
        for i in range(len(citations)):
            if citations[i] >= i + 1: # i+1 ;  현재 확인한 논문 수
            # 현재까지 확인한 논문의 개수보다 인용 횟수가 크거나 같은가
                h = i + 1
            else:
                break
        return h

영어라 이해가 쉽지않았는데

막 어려운 문제는 아니였다.

H-Index의 조건 정리

H-Index h는 다음 두 조건을 모두 만족해야 함

  1. 적어도 h개의 논문이 각각 최소 h번 이상 인용되었다
  2. 나머지 n−h개의 논문은 각각 최대 h번 이하 인용되었다

즉, h는 인용된 논문의 개수와 최소 인용 횟수 간의 균형점

0개의 댓글