Share This
Связаться со мной
Крути в низ
Categories
//Транспортировка материалов из цеха А в цех В: кодинг-задача

Транспортировка материалов из цеха А в цех В: кодинг-задача

27.08.2021Category : Python

Кодинг-марафон. Задача 10.

Для транспортирования материалов из цеха А в цех В используется конвейер. Материалы упаковываются в одинаковые контейнеры и размещаются на ленте один за одним в порядке изготовления в цехе А.

Каждый контейнер имеет степень срочности обработки в цехе В — float-значение, где наименьшее означает наивысший приоритет. То есть приоритет 1.0 должен выполняться раньше, чем 9.0.

Для упорядочивания контейнеров по степени срочности используют накопитель, который находится в конце конвейера перед входом в цех В.

Накопитель работает пошагово, на каждом шаге возможны следующие действия:

  • накопитель перемещает первый контейнер из ленты в цех В;
  • накопитель перемещает первый контейнер из ленты в склад (в складе каждый следующий контейнер помещается на предыдущий);
  • накопитель перемещает верхний контейнер из склада в цех В.

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

Сигнатура функции def work(tasks: list) -> bool: принимает на вход список float и возвращает булин.
Ничего не импортируем, исключения не кидаем!

Примеры

work(2.9 2.1) == True work(5.6, 9.0, 2.0) == False

Решение

def work(tasks: list) -> bool:     if not tasks:         return True     tasks = tasks[:]     index_of_minimal = tasks.index(min(tasks))     if index_of_minimal > 0:         if tasks[:index_of_minimal] != sorted(tasks[:index_of_minimal], reverse=True):             return False     del tasks[index_of_minimal]     return work(tasks)

transportirovka materialov iz ceha a v ceh v koding zadacha 82d807a - Транспортировка материалов из цеха А в цех В: кодинг-задача

Кодинг-марафон по Python

Реши 10 задач и выиграй 5500 рублей

Подписаться ×

  • 21 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2022 / All rights reserved

    Связаться со мной
    Close