파이썬 알고리즘 : H-Index

이진탐색

2024년 5월 13일 알고리즘 문제풀이

문제

난이도

Lv.2

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def solution(citations):
    answer = 0
    left = 0
    right = 10000
    while left <= right:
        cnt = 0
        mid = (left+right)//2
        for i in citations:
            if i >= mid:
                cnt += 1
        if cnt < mid:
            right = mid -1
        else:
            left = mid +1
            
    answer = (left+right)//2 
    return answer

가능한 값 중 최솟값 혹은 최댓값을 찾는 문제는 이제 자연스레 이진탐색이 떠오른다.