트럭이 한번 갔다가 돌아올때 최대한 물건을 배달하고 가져오면 되는 문제
public long solution(int cap, int n, int[] deliveries, int[] pickups) {
long answer = 0;
int haveDeliverCount = 0;
int canPickupCount = 0;
for (int i = n - 1; i >= 0; i--) {
if (deliveries[i] != 0 || pickups[i] != 0) {
int numberOfVisit = 0;
while (haveDeliverCount < deliveries[i] || canPickupCount < pickups[i]) {
numberOfVisit++;
haveDeliverCount += cap;
canPickupCount += cap;
}
haveDeliverCount -= deliveries[i];
canPickupCount -= pickups[i];
answer += (i + 1) * numberOfVisit * 2;
}
}
return answer;
}