[Python3]프로그래머스_H-Index
문제출처: https://programmers.co.kr/learn/courses/30/lessons/42747#
접근법
H-Index 문제는 백준에서 풀어봤던 문제였다.
근데 정리를 하지 않고 넘어갔더니 이번에도 같은 실수를 했다.
문제는 매우 간단하다. h번 인용한 논문이 h편이상 있으면 나머지는 h번 이하로 인용되어야 한다.
- 일단 보자마자 내림차순으로 정렬을 했다.
- 내림차순 정렬을 통해 높은 숫자로 인용된 논문들부터 차례대로 확인하여 몇편까지 확인했는지 쉽게 볼 수 있고 나머지 논문들은 그 논문의 인용된 횟수보다 같거나 낮기 때문이다.
- 첫 index부터 확인하여 현재 h는 citations[index] 이고 이는 현재 index+1편이 있음을 알 수 있다. 그러므로 처음으로
citations[index] <= index+1 이 되는 citations[index]가 정답!
- 만약 논문이 [10,7,6,5,1,1,1,1] 순으로 인용되었다면 내 논리대로라면 5번이상 인용한 논문은 4편이상이라고만 생각하기 때문에 h-index라고 생각하지 않지만 이는 5번이상 인용된 논문은 4번이상 인용되었다고 할 수 있기 때문에 h-index는 4가 된다. 그러므로 index+1 <= citations[index] 일때 index+1도 정답이 될 수 있다.
코드
def solution(citations):
answer = 0
citations.sort(reverse=True)
for i in range(len(citations)):
if( citations[i] <= i+1 ):
answer = max(answer,citations[i])
break
if( citations[i] >= i+1 ):
answer = max(answer,i+1)
return answer
Author And Source
이 문제에 관하여([Python3]프로그래머스_H-Index), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@beanzinu/Python3프로그래머스H-Index저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)