class Solution:

    def minEatingSpeed(self, piles: List[int], h: int) -> int:

        lo = 0

        hi = sum(piles)+1

        while lo + 1 < hi:

            mid = (lo + hi)>>1

            val = sum([(pile+mid-1)//mid for pile in piles])

            if val <= h:

                hi = mid

            else:

                lo = mid

        return hi


오늘도 이분탐색.. 왜 똑같은 문제를 자꾸 내는걸까