Menu
CoddyTech

Koko Eating Bananas

보통이진 탐색python iconjava iconcpp iconc iconjs icon+10

Koko에게는 바나나 더미가 n개 있고, i번째 더미에는 바나나가 piles[i]개 있으며, 시간은 h시간 주어집니다. Koko는 시간당 먹을 바나나 개수인 정수 k를 하나 정하고 계속 그 속도로 먹습니다. 매시간 한 더미에서 바나나를 k개 먹습니다. 그 더미에 남은 바나나가 k개보다 적으면 모두 먹고, 시간이 끝날 때까지 쉽니다. h시간 안에 모든 더미를 먹을 수 있게 하는 가장 작은 k를 반환하세요.

함수

minEatingSpeed(piles: integer-array, h: integer) → integer
pilesinteger-array
각 더미에 있는 바나나의 개수
hinteger
Koko가 가진 시간
반환값integer
h시간 이내에 모든 더미를 먹을 수 있는, 시간당 바나나 수로 나타낸 가장 낮은 정수 먹는 속도

제약 조건

  • 1 ≤ piles.length ≤ 5000
  • 1 ≤ piles[i] ≤ 109
  • piles.length ≤ h ≤ 109이므로 항상 답이 존재합니다.

예제

입력
piles = [4, 10, 7, 3]h = 6
출력
5
설명
속도 5에서는 더미 4, 10, 7, 3을 처리하는 데 각각 1, 2, 2, 1시간이 걸립니다. 총 6시간이므로 조건에 맞습니다. 속도 4에서는 각각 1, 3, 2, 1시간이 걸리며, 총 7시간입니다.
challenge icon

후속 질문

쌍둥이 문제: 코코는 하루에 최대 k개의 바나나를 먹으며, d일 안에 순서대로 더미 전체를 먹습니다. 가장 작은 k는 얼마이며, 탐색에서 무엇이 달라지나요?

코드 초기화
def minEatingSpeed(piles, h):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

테스트 #3

인자들

piles = [4, 10, 7, 3]
h = 6

예상 출력

5