[Algorithm] LeetCode 274 - H-Index in Python(파이썬)

하이초·2023년 6월 13일
0

Algorithm

목록 보기
61/94
post-thumbnail

💡 LeetCode 274:

n회 이상 인용된 n개 논문의 최대 개수 파악

🌱 코드 in Python

알고리즘: ?

class Solution:
    def hIndex(self, citations: List[int]) -> int:
        citations.sort()
        for i in range(len(citations)):
            if citations[i] >= len(citations) - i:
                return len(citations) - i
        return 0

처음엔 문제 자체를 이해 못해서 헤맸다..

예제를 더 찬찬히 뜯어봐야 할듯.
리트코드는 문제 해석부터 문제다.

아무튼! 이번 문제에서 중요했던 것은 n번 인용된 횟수 >= n번 이상 인용된 논문의 갯수 였다.

따라서 오름차순 정렬이 필요하다고 생각했고,
배열을 순회하며 나의 값남은 배열의 길이보다 클 때 그 남은 배열의 길이가 답이 되도록 했다.

오름차순 정렬시 나의 뒤는 무조건 나와 같거나 나보다 클 것이기 때문에,
n번 이상이 보장되어 있으므로, 남은 배열의 길이가 결국 n번 이상 인용된 논문의 갯수이기 때문이다.

class Solution:
    def hIndex(self, citations: List[int]) -> int:
        citations.sort(reverse=True)
        if (citations[0] == 0):
            return 0
        if citations[-1] >= len(citations):
            return len(citations)
        for i in range(len(citations)):
            if citations[i] < i + 1:
                return i
        return 0

이렇게 내림차순 방식으로도 정렬이 가능하다.

LeetCode 274 바로가기

profile
개발국대가 되는 그 날까지. 지금은 개발 응애.

0개의 댓글