Вы работаете на фабрике. Ваша задача — забирать товары с конвейера и паковать их в коробки. Каждая коробка выдерживает максимум 10 кг.
Напишите функцию, которая будет принимать список весов отдельных товаров (в кг) и возвращать количество коробок, в которые можно упаковать все товары с этими весами.
В списке всегда будет как минимум один элемент. Все веса будут меньше или равны 10 кг. Упаковываться товары должны в том порядке, в котором стоят в списке.
Пример
boxes([2, 1, 2, 5, 4, 3, 6, 1, 1, 9, 3, 2]) ➞ 5 # Box 1 = [2, 1, 2, 5] (10kg) # Box 2 = [4, 3] (7kg) # Box 3 = [6, 1, 1] (8kg) # Box 4 = [9] (9kg) # Box 5 = [3, 2] (5kg)
Варианты решения
def boxes(weights):
spaces = 10
boxes = 1
for i in weights:
if i <= spaces:
spaces -= i
else:
boxes += 1
spaces = 10 - i
return boxes
def boxes(w):
k, s = 0, 0
for i in w:
s += i
if s > 10: k, s = k + 1, i
return k + 1