문제 설명 및 제한사항
아이디어 및 해결 방법
코드
def solution(a, b, g, s, w, t):
l, r = 0, int(2 * 1e9 * 2 * 1e5)
while l < r:
mid = (l + r) // 2
tmptotal, tmpg, tmps = 0, 0, 0
for gi, si, wi, ti in zip(g, s, w, t):
n_delivery = (mid + ti) // (2 * ti)
tmptotal += min(wi * n_delivery, gi+si)
tmpg += min(wi * n_delivery, gi)
tmps += min(wi * n_delivery, si)
if tmptotal >= a+b and tmpg >= a and tmps >= b:
r = mid
else:
l = mid+1
return l
Python
복사
출처
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges