정렬 - H-Index (Level 2)

jisu_log·2025년 4월 1일

알고리즘 문제풀이

목록 보기
12/105


def solution(citations):
    answer = 0
    
    citations.sort() # 오름차순 정렬
    

    for i in range(0, len(citations) + 1): # h가 가장 클 수 있는 경우부터 확인해서 최댓값 찾기
        h = len(citations) - i #  0 <= h <= len(citations)
        
        h_idx = -1
        for j in range(0, len(citations)):
            if citations[j] >= h: # h번 이상 인용된 논문을 찾았다면 그 뒤의 것들은 모두 h번 이상임 (전체 길이 - j = h번 이상 인용된 논문의 수)
                h_idx = j # 현재 인덱스 저장
                break
            
        if h_idx == -1: # h번 이상 인용된 논문이 없다면 패스
            continue
            
        if len(citations) - h_idx >= h: # h번 이상 인용된 논문이 h편 이상이라면 (꼭 h와 똑같을 필요가 없음!!)
            answer = h # 현재 h가 최댓값임
            break # 더 확인하지 않고 끝
    
    
    return answer

0개의 댓글