2023년 03월 08일 수요일 - 개강 파티!
오늘 올려볼 문제는 875번 Koko Eating Bananas 이라는 문제이다.
사진을 클릭하면 해당 문제로 이동합니다.
오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.
아니 왜 이렇게 약속이 많이 잡히지...?
입력
사진에서도 볼 수 있듯이 int 배열 1개와 int 값 1개가 입력으로 들어온다.
풀이 및 코드
koko가 한 시간에 k개의 바나나만 먹을 수 있다.
바나나 뭉치들이 있을 때 주어진 h 시간내로 먹을 수 있으면서 최소인 k값을 구하는 문제이다.
한 번에 한 뭉치만 먹어야하고 해당 뭉치에 k개 이하의 바나나가 남았다면 모두 먹는다.
다른 뭉치와 같이 먹는 것은 불가능하다.
오늘은 처음부터 정답을 생각해냈다.
어제 문제와 비슷하게 바이너리 서치로 푸는 문제이다.
이제 코드를 봐보자!
풀이코드
class Solution {
public int minEatingSpeed(int[] piles, int h) {
int left = 1, right = 0;
for(var p : piles) right = Math.max(right, p);
while(left < right) {
int mid = left + (right - left) / 2, hour = 0;
for(var p : piles) hour += p / mid + (p % mid == 0 ? 0 : 1);
if(hour > h) left = mid + 1;
else right = mid;
}
return left;
}
}
제출 화면
이거 옛날에 못 풀고 바이너리 서치로 풀면 된다는 것에 큰 충격을 받았던 문제이다.
그래서 그런지 머리에 각인되어 있어서 쉽게 풀 수 있었던 것 같다.
그리고 나 요즘 왤케 약속 많지?
뭐 근데 이 때 아니면 언제 놀아~~
내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.
'LeetCode 문제 풀이' 카테고리의 다른 글
[LeetCode] 958번 Check Completeness of a Binary Tree 문제를 풀어보았다. (ft. java) (1) | 2023.03.15 |
---|---|
[LeetCode] 129번 Sum Root to Leaf Numbers 문제를 풀어보았다. (ft. java) (0) | 2023.03.14 |
[LeetCode] 2187번 Minimum Time to Complete Trips 문제를 풀어보았다. (ft. java) (0) | 2023.03.07 |
[LeetCode] 1345번 Jump Game IV 문제를 풀어보았다. (ft. java) (0) | 2023.03.05 |
[LeetCode] 912번 Sort an Array 문제를 풀어보았다. (ft. java) (0) | 2023.03.01 |