Алгоритм задачи покупки хлеба
Привет Ребята,
Недавно у меня был тест на кодирование для должности инженера-алгоритмиста в компании. Они поставили передо мной следующую задачу. Хотя я провалил задачу кодирования, но я хотел бы знать решение этой проблемы, чтобы увидеть, где я ошибся?
Проблема:
Вы живете в отдаленном поселке, куда периодически через нерегулярные промежутки времени приходят продавцы хлеба. Всякий раз, когда вы покупаете свежий хлеб, его хватает на 30 дней, пока он не становится слишком черствым, чтобы есть. Ваша семья съедает одну буханку хлеба в день.
Вам дается календарь, когда продавцы хлеба будут посещать вас в ближайшие дни, и цена, которую каждый продавец хлеба будет взимать за буханку. В настоящее время у вас есть 10 свежих хлебов, и в конце календаря вы получите кучу бесплатного хлеба, так что вам не нужно будет иметь его под рукой.
Напишите функцию, которая подскажет вам, сколько хлеба купить у каждого из продавцов
Ввод:
total_days
- целое число, число дней в календаре, пока не придет бесплатный хлебsellers
, - список пар целых чисел (день, цена). Каждая пара представляет одного продавца хлеба. День - это сколько дней от начала до прибытия продавца. Цена-это цена покупки каждой буханки хлеба у этого продавца, в копейкахВыход:
purchases
, список целых чисел той же длины, что и продавцы. Каждое целое число-это то, сколько буханок вы должны купить у каждого продавца или None
, если нет решения, которое не заставит вашу семью есть черствый хлеб в какой-то моментВы должны вывести план покупки, который минимизирует общую стоимость. В случае связей выведите план, который требует покупки у наименьшего количества разных продавцов, и в рамках тех Выберите план, который покупает больше хлеба раньше
Требования:
Пожалуйста, напишите хорошо отформатированную, легко читаемую функцию python
calculate_purchasing_plan(total_days, sellers)
в файле под названиемyour_name.py это решает эту проблему, используя только стандартный python (т. е. никаких пакетов
требуемый).
Пожалуйста, включите комментарий в верхней части файла с вашим именем и электронной почтой, а также краткое описание
параграф, описывающий, почему алгоритм, который вы предоставили, должен работать.
Пример:
calculate_purchasing_plan(60, [(10,200), (15,100), (35,500), (50,30)]) [5, 30, 5, 10]
Я был бы очень признателен, если бы кто-нибудь мог пройти через мой код и рассказать мне о любом примере, который показывает, что код не дает минимальной стоимости.
Что я уже пробовал:
Я решил эту проблему, спасибо вам всем большое.
Gerry Schmitz
Может быть, "crrnt_breads" вместо "current_breads" сделал вас. Иногда это все, что требуется, если вы соревнуетесь с другими. Никто не получает баллов за тупость.