5 4 4 2

1 2 3 4

4 3 2 1

h = 3

def solution(citations):
    citations.sort(reverse=True)
    idx = 0
    h = citations[0]

    for h in range(citations[0], -1, -1):
        while idx < len(citations) and h <= citations[idx]:
            idx += 1

        if h <= idx:
            return h
# 지금 몇 편이 남았는가? -> 모든 인용횟수가 남은 논문 수보다 큰가?

def solution(citations):
    citations = sorted(citations)
    l = len(citations)
    for i in range(l):
        if citations[i] >= l-i:
            return l-i
    return 0
def solution(citations):
    citations.sort(reverse=True)
    answer = max(map(min, enumerate(citations, start=1)))
    return answer

‘인용수’보다 ‘논문수’에 초점을 맞춘 풀이가 더 깔끔하다.