on my way

[프로그래머스 코딩테스트 연습] 정렬 > H-Index (Python3) 본문

algorithm/Python

[프로그래머스 코딩테스트 연습] 정렬 > H-Index (Python3)

wingbeat 2024. 8. 26. 21:47
반응형

def solution(citations):
    answer = 0
    citations.sort(reverse=True)
    
    for i in range(len(citations)):     
        if(citations[i] < i+1):
            return i

    return len(citations)
  1. 정렬: 먼저 인용 횟수 리스트 citations를 내림차순으로 정렬해서 가장 많이 인용된 논문이 첫 번째에 위치하게 된다.
  2. 루프를 통해 조건 확인:
    • 이 정렬된 리스트를 순차적으로 검사
    • 만약 논문의 인용 횟수 citations[i]가 그 논문보다 인덱스가 높은 i+1보다 작다면, 그 i가 H-Index
  3. H-Index 반환: 만약 모든 논문이 그 인덱스보다 높은 인용 횟수를 가지고 있다면, 전체 논문의 수가 H-Index

 

  • 예를 들어, 인용 횟수가 [6, 5, 3, 1, 0]으로 정렬된 경우,
    • 첫 번째 논문(6번 인용)은 1보다 크고,
    • 두 번째 논문(5번 인용)은 2보다 크고,
    • 세 번째 논문(3번 인용)은 3보다 크고,
    • 네 번째 논문(1번 인용)은 4보다 작기 때문에, H-Index는 3
반응형