99클럽 코테 스터디 8일차 TIL + 정렬:H-Index

Saang Bum Kim·2024년 5월 27일
0

99클럽

목록 보기
44/59

문제

링크텍스트

풀이

  • 일정 횟수 이상 인용된 논문이 얼마나 많은가를 구하는 문제입니다.
  • 논문이 n 편 있습니다.
  • 각 논문의 인용 횟수를 sort 합니다.
  • sort 된 리스트 c[i] : i=1:n 를 i에 대한 함수로 값이 인용 횟수라고 본다면, i에 대해 계속 증가하는 함수입니다. if i > j, then c[i] >= c [j]
  • 인덱스 i는 달리 생각하면 또 다른 의미가 있습니다.
    • 즉, c[i]라는 인용 횟수보다 같거나 큰 논문이 n - i 편 있다는 걸 알려줍니다.
    • 여기서 n - ii에 대해 계속 감소하는 함수로 볼 수 있습니다.
  • 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

profile
old engineer

0개의 댓글