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

Recent Posts

Сборка мусора в Python: ключевые концепции и механизмы

Управление памятью - важный, но часто упускаемый из виду аспект программирования. При неправильном подходе оно…

6 дней ago

Круговой импорт в Python и как его избежать

Как возникает круговой импорт? Эта ошибка импорта обычно возникает, когда два или более модуля, зависящих…

2 недели ago

Библиотека tqdm: визуализация прогресса выполнения скриптов Python

Вы когда-нибудь оказывались в ситуации, когда скрипт на Python выполняется очень долго и вы задаетесь…

3 недели ago

Символы новой строки в Python

В этом руководстве мы разберем все, что нужно знать о символах перехода на новую строку…

2 месяца ago

if __name__ == «__main__» в Python: полное объяснение

Блок if __name__ == "__main__" в Python позволяет определить код, который будет выполняться только при…

2 месяца ago

Как писать модульные тесты для методов экземпляра в Python

Давайте разберем, как настроить модульные тесты для экземпляров классов. Мы напишем тесты для проверки функциональности…

4 месяца ago