알고리즘&자료구조/코딩테스트 연습

[프로그래머스] H-index python3

계토 2022. 6. 11. 17:20

프로그래머스 H-index python3 문제 바로가기

 

코딩테스트 연습 - H-Index

H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표

programmers.co.kr

def solution(citations):
	# h index의 값은 과학자가 발표한 전체 논문수보다 많을 수 없다.
    h_start = len(citations)

	# 역순으로 정렬
    citations.sort(reverse=True)
    
    while True:
    	# sort된 상태에서, h_start번째의 인용수가 h_start 값보다 작으면 h index가 될 수 없음
        if citations[h_start-1] < h_start:
            h_start -=1
        # h_start번째 논문의 인용수가 h_start보다 같거나 크면,
        # h_start번 이상 인용된 논문이 h_start편 이상이라는 것
        # h_index가 될 수 있음.
        elif citations[h_start-1] >= h_start:
            break
        
    return h_start