문제
링크텍스트
풀이
- 일정 횟수 이상 인용된 논문이 얼마나 많은가를 구하는 문제입니다.
- 논문이 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