Необязательно решить все и правильно. Мы хотим понять, как Вы подходите к решению задач и пишете код. Будьте готовы к обсуждению решений на собеседовании, а также к дополнительным задачам.
ответом на каждую из задач должен быть код
-
В лофте
n
хипстерам досталисьm
смузи. При этом все хипстеры - люди вежливые, и поэтому должны выпить одинаковое количество смузи (можно выбросить несколько). Напишите функциюdistributeSmoothies(int $m, int $n): int
, результатом которой будет количество смузи, которое выпьет каждый хипстер. -
Вы нашли клад! Перед вами находятся камни двух типов: одни с массой
m1
и ценойp1
, другие - с массойm2
и ценойp2
. К сожалению, вы не сможете вернуться на место раскопок еще раз, поэтому необходимо решить, что вы унесете с собой сейчас. Вы сможете поднять максимумmaxM
. Определите, сколько максимум денег вы сможете выручить, если:- можно взять не более одного камня каждого типа?
- можно брать сколько угодно камней каждого типа?
-
Злой клоун хочет, чтобы в смайликах не было больше одной скобки подряд. Напишите функцию, которая поможет ему в этом, для любой фразы.
Задачи 2 и 3 – со "звездочкой". Они могут быть достаточно объемными для тестового задания. Достаточно решить одну из них. Решение должно быть "концептуально" правильным. Мы не будем досконально тестировать корректную работу системы на всех краевых случаях :)
- Реализуйте процедуру расчета скидки для корзины Cart (код для затравки в папке cart).
Также необходимо “раскидать” скидку между товарами (например, для корзины из 2-х товаров за 2000 и 1-го за 3000 скидка в 700р распределится как 200 за каждый первый товар и 300 за второй).
Скидки могут быть следующих видов:
- 100р на первую покупку;
- 5% пенсионерам;
- 500р на сумму заказа свыше 10000р.
2*. Предложите свой вариант реализации распределенного cron: есть общий список задач, который может выполняться на нескольких машинах, но при этом должен выполниться ровно один раз.
3*. Напишите телеграм-бота, который по названию страны возвращает emoji с ее флагом и ссылку на страницу в Википедии.