Menu
Coddy logo textTech

Повторение — Таблица лидеров

Часть раздела Логика и управление потоком путешествия по Swift на Coddy — урок 32 из 56.

challenge icon

Задание

Средне

Вы создаете таблицу лидеров. Прочитайте одну строку ввода: список записей name:score, разделенных запятыми. Некоторые записи имеют нецелочисленный балл и должны быть пропущены (используйте compactMap).

Выведите трех лучших игроков по убыванию баллов, по одному в строке, в формате:

<rank>. <name> - <score>

Ранги начинаются с 1. При равенстве баллов сортируйте по имени в алфавитном порядке. Если существует менее трех корректных записей, выведите их все.

После таблицы лидеров выведите Avg: <n> с целочисленным средним значением каждого корректного балла (округляйте в сторону нуля, без десятичных знаков). Если корректных записей нет, выведите Avg: 0.

Для ввода alice:90,bob:bad,cara:85,dan:90,eve:70,fin:99 результатом будет:

1. fin - 99
2. alice - 90
3. dan - 90
Avg: 86

Попробуйте сами

let entries = readLine()!.components(separatedBy: ",")

// TODO: compactMap в (name, score); сортировка по score по убыванию, затем по name;
// вывести топ-3; затем среднее значение всех корректных баллов

Все уроки раздела Логика и управление потоком