Вы работаете на фабрике. Ваша задача — забирать товары с конвейера и паковать их в коробки. Каждая коробка выдерживает максимум 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