문제
링크텍스트
풀이
- 일정 횟수 이상 인용된 논문이 얼마나 많은가를 구하는 문제입니다.
- 논문이 n 편 있습니다.
- 각 논문의 인용 횟수를 sort 합니다.
- sort 된 리스트
c[i] : i=1:n 를 i에 대한 함수로 값이 인용 횟수라고 본다면, i에 대해 계속 증가하는 함수입니다. if i > j, then c[i] >= c [j]
- 인덱스 i는 달리 생각하면 또 다른 의미가 있습니다.
- 즉, c[i]라는 인용 횟수보다 같거나 큰 논문이
n - i 편 있다는 걸 알려줍니다.
- 여기서
n - i 는 i에 대해 계속 감소하는 함수로 볼 수 있습니다.
- i = 0 일 때:
n 편의 모든 논문의 인용 횟수가 n 보다 크다면 H-Index는 n입니다.
- sort 된 리스트의 첫 요소가 n 보다 큰지를 확인하면 됩니다.
- i = 1 일 때:
n - 1 편의 논문의 인용 횟수가 n-1보다 크다면 H-Index는 n-1입니다.
- sort 된 리스트의 두 번째 요소가 n-1 보다 큰지를 확인하면 됩니다.
- i = j 일 때:
n - j 편의 논문의 인용 횟수가 n-j보다 크다면 H-Index는 n-1입니다.
- sort 된 리스트의 j+1 번째 요소가 n-j 보다 큰지를 확인하면 됩니다.
결과
def solution(citations):
n = len(citations)
citations.sort()
for i in range(n):
if citations[i] >= n-i:
return n-i
answer = 0
return answer
