Нашли ошибку?

Команда под все навыки

СредняяРеализацияГлава 8

#жадные алгоритмы#покрытие множества#приближённые алгоритмыid: ga-pick-team

Для проекта нужны навыки needed. У каждого кандидата свой набор навыков: candidates[имя]. Напишите pick_team(needed, candidates): функция жадным алгоритмом собирает небольшую команду, в которой вместе есть все нужные навыки, и возвращает список имён. Если это невозможно, она возвращает None.

Пример

needed = {"python", "sql", "ml", "devops", "design"}
candidates = {
    "Ира": {"python", "ml", "sql"},
    "Кирилл": {"devops", "python"},
    "Лена": {"design", "sql"},
    "Миша": {"ml"},
}
pick_team(needed, candidates)   # например ["Ира", "Кирилл", "Лена"]

Правила

Решение

def pick_team(needed: set[str], candidates: dict[str, set[str]]) -> list[str] | None:
    """Имена кандидатов, вместе покрывающих needed (жадно), или None."""
    # ваш код
    raise NotImplementedError

Можно решать и в своём редакторе: «Скопировать с тестами» и запустите python3 pick_team.py — тесты те же, результат покажет ✓ / ✗ и итог.