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
'알고리즘 문제 > Leetcode' 카테고리의 다른 글
[leetcode] 1020. Number of Enclaves (0) | 2019.04.08 |
---|---|
[leetcode][1021] Best Sightseeing Pair (0) | 2019.03.29 |
[leetcode][1013] Pairs of Songs With Total Durations Divisible by 60 (0) | 2019.03.17 |
[leetcode][1009] Complement of Base 10 Integer (0) | 2019.03.17 |
[leetcode][1005] Maximize Sum Of Array After K Negations (0) | 2019.03.16 |
댓글