Повторение — Таблица лидеров
Часть раздела Логика и управление потоком путешествия по Swift на Coddy — урок 32 из 56.
Задание
СреднеВы создаете таблицу лидеров. Прочитайте одну строку ввода: список записей 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; затем среднее значение всех корректных баллов
Все уроки раздела Логика и управление потоком
1Строки в деталях
Подсчет и индексыРегистр и удаление пробеловПоиск в строкахРазделение и объединениеЗамена подстрокИтоги — Проверка имени пользователя4Множества
Создание множествОбъединение и пересечениеРазность и симметрическая разностьПодмножество и надмножествоИтоги — Фильтр тегов7Проект — Трекер привычек
Обзор проектаОтметить выполнение10Проект — Движок викторины
Обзор проектаЗадаем вопросы2Диапазоны и шаги
Закрытые и полуоткрытыеШагМетоды диапазоновДиапазоны в SwitchИтоги: Сетка календаря3Словари
Объявление словарейБезопасный поискОбновление словарейИтерация по словарямГруппировка значенийИтоги — Инвентарь6Функции высшего порядка, часть 2
compactMapflatMapsorted(by:)Создание конвейеровПовторение — Таблица лидеров