[프로그래머스] Lv2. H-Index

lemythe423·2023년 7월 14일
0
post-thumbnail

📝 문제

‼️ h이상 인용된 논문이 h이상

풀이

h편의 논문은 citations 배열의 인덱스
h편 이상 인용은 citations 배열의 값
✅ 배열은 정렬

⚠️ 길이가 1인 경우
⚠️ [100, 100, 100] 과 같은 배열이 들어오는 경우(정답 3)

위 두 가지의 예외 사항 처리를 하기 위해서 ✅ 배열의 가장 앞에 -1 추가

값이 정렬되어 있기 때문에 최대값을 찾기 위해서는 뒤에서부터 인덱스와 각 배열의 값을 비교한다. 현재 인덱스 = 현재까지 인용된 논문의 개수이며 현재 배열의 값 = h 이기 때문에 두 개의 값을 비교해서 배열의 값 <= 인덱스인 지점을 찾으면 된다. 논문의 개수가 h의 수보다 크거나 같으면 되기 때문에

def solution(citations):
    L = len(citations)
    citations.sort()
    
    citations.insert(0, -1)
    
    for h in range(L+1):
        print(h)
        if citations[L-h] <= h:
            return h
profile
아무말이나하기

0개의 댓글