01 / тестовое задание

Яндекс Еда:
тестовое задание для продуктового аналитика

Реальное тестовое с собеседования на Middle Product Analyst: исходный текст задания, как решать и частые ошибки.

02 / оригинальный текст

Текст тестового задания

Исходный текст задания без редактуры — так, как его прислали кандидату.

Задание #1

У вас есть список конфет разных типов, вам нужно собрать одинаковые наборы для своих друзей.

Вам хочется собрать наборы наибольшему числу друзей, при этом раздать все конфеты.

Например:

- Тест: `['a', 'a', 'a', 'b', 'b', 'b', 'b', 'c', 'c', 'c', 'c', 'c']`. Ответ: 1

- Тест: `['a', 'b', 'c', 'a', 'b', 'c', 'c', 'c']`. Ответ: 2

1. Напишите код на Python, который принимает через `stdin` список конфет и выводит в `stdout` максимальное число друзей.

2. Воспользуйтесь стандартным вводом/выводом (или input.txt и output.txt).

3. Используйте Python 3.7.3 и только стандартные библиотеки (доступ в интернет отсутствует).

# Шаблон кода: import fileinput import json

# дополнительный импорт библиотек, если требуются # ... # объявление функций def get_friend(x): # ваш код return result # вывод результата работы вашей функции

# считывание из stdin for line in fileinput.input(): # преобразование в объект python candies = json.loads(line)

# вызов функции и вывод результата в консоль print(get_friend(candies))

Задание #2

Эта задача настолько сложная, что её правильно решают только 5% кандидатов.

Более того, даже проводящий собеседование в 2% случаев принимает неверное решение за верное (верные решения он всегда узнаёт).

Проводящий собеседование говорит вам, что вы справились с задачей.

Какова вероятность того, что вы дали правильный ответ?

Введите ответ в процентах с точностью до двух знаков после точки, без знака `%`. Разделителем является точка.

03 / разбор в сборнике

Разбор задачи в сборнике

Эту или очень похожую задачу мы уже разобрали по шагам.

04 / что проверяют

Что проверяет это задание

01

Python

Обработка данных и расчёты: pandas, скрипты, автоматизация.

02

Теория вероятностей

Вероятностные модели и аккуратные рассуждения.

03

Аналитическое мышление

Как разложить задачу, выбрать подход и обосновать решение.

05 / как решать

Как подойти к решению

  1. 1

    Разберите условие: что именно просят посчитать и в каких разрезах.

  2. 2

    Сверьтесь с данными: какие таблицы есть, период и нужные фильтры.

  3. 3

    Решайте по шагам и фиксируйте промежуточные результаты и допущения.

  4. 4

    Доведите до финальных чисел и коротких выводов или рекомендаций.

06 / частые ошибки

Частые ошибки

  • Неверный период, разрез или единицы измерения.
  • Не учтены фильтры и сегменты из условия.
  • Решение без промежуточных шагов — только финальная цифра.
  • Нет выводов и рекомендаций по результату.
07 / хороший ответ

Каким должен быть сильный ответ

Хороший ответ — это не просто финальные числа или код. Работодатель должен увидеть, как вы думаете, как проверяете ограничения задачи и как оформляете результат.

  • короткое описание логики решения;
  • промежуточные таблицы, запросы и фильтры;
  • финальные значения по каждому пункту задания;
  • понятные выводы и рекомендации.
08 / похожие задания

Похожие задания

09 / разборы в telegram

Хочешь больше таких разборов?

В Telegram-канале разбираю тестовые с собеседований, метрики и типичные ошибки кандидатов.

Подписаться в Telegram →
10 / следующий шаг

Разбираешь тестовые, но не уверен в решении?

На интенсиве разбираем реальные кейсы, A/B-секции, метрики, SQL, Python и типовые ошибки кандидатов.