h번 이상 인용된 논문이 h편 이상일 때, h의 최댓값을 H-Index라고 한다
처음에는 for문을 두 번 돌려서 답을 받았다
cnt>=h인데 cnt==h로 해서 테스트 11번을 통과하느라 애를 먹었다
def solution(citations):
answer = 0
citations.sort()
n = len(citations)
for h in range(max(citations)+1,-1,-1):
cnt = 0
for i in range(n):
if citations[i]>=h:
cnt+=1
if cnt>=h:
answer = h
break
return answer
하지만 이 문제는 정렬문제이기 때문에 좀 더 간단한 답변이 있을거라고 생각해서 더 찾아봤다
def solution(citations):
answer = 0
citations.sort()
n = len(citations)
for i in range(n):
if citations[i]>=n-i:
answer = n-i
break
return answer
citations[i] >= n-i 라는 코드가 'h번 이상 인용된 논문이 h편 이상'이라는 말이라는걸 이해하기 약간 힘들었다
부족한 말주변으로 설명해보자면 citations을 오름차순으로 정렬했기 때문에 citations[i]가 n-i(남은 논문 갯수) 이상이라면, 그 뒤의 인용횟수들도 n-i보다 크기 때문에, 정답이 된다