해당 문제는 여기에서 확인하실 수 있습니다.
def solution(cap, n, deliveries, pickups):
# deliveries와 pickups 리스트를 뒤집어서 가장 먼 집부터 처리
deliveries = deliveries[::-1]
pickups = pickups[::-1]
answer = 0 # 총 이동 거리
d = 0 # 남은 배달 상자 수
p = 0 # 남은 수거 상자 수
for i in range(n):
d += deliveries[i] # i번째 집의 배달 상자 누적
p += pickups[i] # i번째 집의 수거 상자 누적
# 배달 또는 수거할 상자가 남아 있으면 반복
while d > 0 or p > 0:
d -= cap # 트럭 용량만큼 배달 상자 처리
p -= cap # 트럭 용량만큼 수거 상자 처리
answer += (n - i) * 2 # 현재 위치까지 왕복 거리 더하기
return answer