Ctrl K

Сдача у киоска

Лёгкая
Вы продаёте кофе в киоске, каждый стакан стоит 5. Покупатели подходят по одному в порядке, заданном массивом payments, каждый берёт ровно один стакан и платит купюрой 5, 10 или 20. Каждому нужно сразу выдать точную сдачу. В начале дня в кассе нет ни одной купюры; сдавать можно только тем, что уже заплатили предыдущие покупатели. Верните True, если удастся обслужить всю очередь, и False, если кому-то не хватит сдачи.
Пример 1
payments=[5, 10, 5, 20] → True

Первый покупатель платит 5, второму за его 10 отдаём эту пятёрку, третий снова платит 5. Для 20 нужна сдача 15, а в кассе 10 и 5 — хватает.

Пример 2
payments=[10, 5] → False

Первый покупатель платит 10, а в кассе ещё пусто — сдать 5 нечем.

Пример 3
payments=[5, 5, 5, 20, 10] → False

За 20 отдаём три пятёрки, и касса пустеет. Следующему покупателю с 10 сдать уже нечего.

Ограничения
  • 1 ≤ len(payments) ≤ 10⁵
  • Каждое payments[i] равно 5, 10 или 20
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКуски торта для гостей ЛёгкаяСила слабейшего в паре ЛёгкаяПосадка в ряд грядок ЛёгкаяРяд по подъёмам и спадам ЛёгкаяТреугольник из палочек Лёгкая
загружаем Python…
Вход
payments=[5, 10, 5, 20]
Ожидается
True

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 109 тестов на сервере, включая скрытые.