본문 바로가기
알고리즘 문제/Leetcode

[leetcode][1014] Capacity To Ship Packages Within D Days

by 햄과함께 2019. 3. 22.
320x100

문제 : https://leetcode.com/problems/capacity-to-ship-packages-within-d-days/




이분탐색으로 풀었다.

l = weights 배열중 가장 작은 수. r = weights 배열의 합.

정답이 될 수 있는 값의 제일 작은 값(l), 제일 큰 값(r)을 구하고 l을 증가, r을 감소 시키면서 정답이 될 수 있는 가장 작은 수를 구한다.

l과 r의 중간값을 구한다음, 구한 중간 값으로 weights 배열을 탐색하면서 소요되는 day를 직접 구해본다.

구한 day가 D보다 작거나 같다면 정답이 될 수 있는 경우이므로 r을 중간값으로 갱신한다음 다시 반복한다.

day가 D보다 크다면 정답이 될 수 없으므로 l을 중간값+1으로 갱신 후 다시 반복한다.

이를 l이 r보다 크거나 같아질때까지 반복한다.




소스코드 : https://gist.github.com/fpdjsns/cf33ccdf8aaf1ebe5f5438136eaae618

320x100

댓글