[정렬] H-index

접근 방식

선소팅한 배열을 순회하면서 해당 요소의 값과 나머지 배열의 개수 비교가 관건이다!
여기까진 잘 생각해냈는데 이게 어떤 비교냐에서 완전 핀트가 나가버린 것🤪

알고보니 문제 그대로 비교 조건식을 구상하면 됐다. 문제 속 "h번 이상 인용된 논물이 h편 이상"이라는 문장을 식으로 옮기면 다음과 같다:

h >= n-i
(h: 배열 속 요소 값, n: 배열 요소 개수, i: 현재 요소의 인덱스)

정리하자면 아래와 같다.

문제 풀이

  1. 먼저 주어진 citations 배열을 소팅한다.
  2. citations를 순회하면서 해당 조건식을 충족하는 개수(위 조건식의 n-i)를 찾는다.

최종 코드

def solution(citations):
    citations.sort()
    
    n = len(citations)
    for i in range(n):
        if(citations[i] >= n-i):
            return n-i
    
    return 0

좋은 웹페이지 즐겨찾기