H-Index
LeetCode 274. H-Index
원문
Given an array of integers citations
where citations[i]
is the number of citations a researcher received for their ith
paper, return the researcher’s h-index.
According to the definition of h-index on Wikipedia: The h-index is defined as the maximum value of h
such that the given researcher has published at least h
papers that have each been cited at least h
times.
풀이
우선 citations
를 정렬한다.
- 오름차순으로 정렬
i
의 초기값은citations의 길이 - 1
이고,count
의 초기값은0
이다.i
가 음수가 되거나count
가citations[i]
보다 크거나 같아질 때까지 다음을 반복한다.i
에서 1 빼기count
에 1 더하기
- 반복문에서 나오면
count
를 반환한다.
- 내림차순으로 정렬
citations
를 순회한다.citations[i]
가i + 1
보다 작으면i
를 반환한다.- 순회가 끝났다면
i + 1
, 즉citations
의 길이를 반환한다.
코드
Python
1
2
3
4
5
6
7
8
9
class Solution:
def hIndex(self, citations: List[int]) -> int:
citations.sort(reverse=True)
for i in range(len(citations)):
if citations[i] < i + 1:
return i
return i + 1
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public int hIndex(int[] citations) {
Arrays.sort(citations);
int i = citations.length - 1;
int count = 0;
while (i > -1 && count < citations[i]) {
i--;
count++;
}
return count;
}
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.