Finish problem 0875-koko-eating-bananas

This commit is contained in:
Johan Sandoval
2026-07-22 21:48:12 -05:00
parent 730596f416
commit 13e85849b3
2 changed files with 28 additions and 0 deletions
@@ -0,0 +1,14 @@
def hours_needed(piles: list[int], k: int) -> int:
return sum(-(-p // k) for p in piles)
class Solution:
def minEatingSpeed(self, piles: list[int], h: int) -> int:
lo, hi = 1, max(piles)
while lo < hi:
k = (lo + hi) // 2
if hours_needed(piles, k) <= h:
hi = k
else:
lo = k + 1
return lo
@@ -0,0 +1,14 @@
import pytest
from solution import Solution
@pytest.mark.parametrize(
"piles, h, expected",
[
([3, 6, 7, 11], 8, 4),
([30, 11, 23, 4, 20], 5, 30),
([30, 11, 23, 4, 20], 6, 23),
],
)
def test_min_eating_speed(piles, h, expected):
assert Solution().minEatingSpeed(piles, h) == expected