Три режиссёра по числу просмотров

тема: Таблицы: фильтр и группировка · уровень: средний

Условие

В файле data.csv хранится база фильмов онлайн-кинотеатра. Каждая строка после заголовка описывает один фильм, его режиссёра, жанр, год выпуска и число просмотров.

Из стандартного ввода поступают жанр и минимальный год выпуска. Учитываются только фильмы указанного жанра, выпущенные не раньше заданного года. Записи с пустым значением просмотров не участвуют в подсчётах.

Для каждого режиссёра вычисляется суммарное число просмотров всех его учитываемых фильмов: sum_views(режиссёр) = сумма views по подходящим строкам этого режиссёра. Требуется вывести имена трёх режиссёров с наибольшими значениями sum_views в порядке убывания этой суммы.

Если суммарные числа просмотров равны, раньше выводится лексикографически меньшее имя режиссёра. Режиссёры, у которых нет ни одного подходящего фильма с указанным числом просмотров, не рассматриваются. Гарантируется, что после отбора существует не менее трёх режиссёров.

Суммы просмотров являются целыми числами, округление не применяется.

Формат ввода

Рядом с программой находится файл data.csv в кодировке UTF-8. Разделитель полей — запятая, первая строка содержит заголовок:

title,director,genre,release_year,views

Столбец title содержит название фильма, director — имя режиссёра без пробелов, genre — жанр, release_year — год выпуска, views — целое число просмотров или пустую строку.

Стандартный ввод содержит две строки:

Формат вывода

Выведите три имени режиссёров через один пробел в порядке убывания суммарного числа просмотров.

Ограничения

В файле от 300 до 2000 строк с фильмами, в используемом наборе данных — 372 строки.

Длина title — от 1 до 40 символов. Длина director — от 3 до 12 символов. Значение genre — одно из action, drama, comedy, sci-fi. Год release_year находится в диапазоне от 2010 до 2024. Непустое значение views — целое число от 10 до 920000. Значение min_year находится в диапазоне от 2010 до 2024.

Решить задачу с автопроверкой на Python →

Куда дальше