Powtórzenie – tabela wyników
Część sekcji Logika i przepływ programu ścieżki Swift w Coddy. Lekcja 32 z 56.
Wyzwanie
ŚredniTworzysz ranking. Wczytaj jeden wiersz danych wejściowych: listę wpisów name:score rozdzielonych przecinkami. Niektóre wpisy mają wynik niebędący liczbą całkowitą i należy je pominąć (użyj compactMap).
Wypisz trzech najlepszych graczy w kolejności malejącej według wyniku, po jednym w każdym wierszu, w formacie:
<rank>. <name> - <score>Rankingi zaczynają się od 1. Remisy rozstrzygaj alfabetycznie według nazw. Jeśli jest mniej niż trzech prawidłowych wpisów, wypisz je wszystkie.
Po rankingu wypisz Avg: <n> ze średnią całkowitą wszystkich prawidłowych wyników (zaokrąglij w kierunku zera, bez miejsc po przecinku). Gdy nie ma prawidłowych wpisów, wypisz Avg: 0.
Dla danych wejściowych alice:90,bob:bad,cara:85,dan:90,eve:70,fin:99 wynik to:
1. fin - 99
2. alice - 90
3. dan - 90
Avg: 86Spróbuj swoich sił
let entries = readLine()!.components(separatedBy: ",")
// TODO: użyj compactMap, aby uzyskać (name, score); posortuj malejąco według score, a przy remisie według name;
// wypisz 3 najlepsze wyniki; następnie średnią ze wszystkich poprawnych wyników
Wszystkie lekcje w sekcji Logika i przepływ programu
1Dogłębnie o ciągach znaków
Liczba i indeksyWielkość liter i usuwanie białych znakówWyszukiwanie w ciągach znakówDzielenie i łączenieZastępowanie podciągówPodsumowanie — sprawdzanie nazwy użytkownika4Zbiory
Tworzenie zbiorówSuma i część wspólnaRóżnica i różnica symetrycznaPodzbiór i nadzbiórPowtórka — filtr tagów7Projekt – Śledzenie nawyków
Przegląd projektuOznacz jako wykonane10Projekt — silnik quizów
Przegląd projektuZadawanie pytań2Zakresy i kroki
Zakresy domknięte i półotwarteKrokMetody zakresówZakresy w instrukcji switchPowtórka — siatka kalendarza5Funkcje wyższego rzędu, część 1
MapFilterReduceŁączenie map, filter i reducePodsumowanie – statystyki słów3Słowniki
Deklarowanie słownikówWyszukiwanie opcjonalneAktualizowanie słownikówIterowanie po słownikachGrupowanie wartościPodsumowanie – inwentarz6Funkcje wyższego rzędu, cz. 2
compactMapflatMapsorted(by:)Tworzenie potokówPowtórzenie – tabela wynikówPoćwicz samodzielnie: Edytor online Swift