Menu
Coddy logo textTech

Zusammenfassung – Bestenliste

Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy — Lektion 32 von 56.

challenge icon

Aufgabe

Mittel

Sie erstellen eine Bestenliste. Lesen Sie eine einzelne Eingabezeile ein: eine durch Kommas getrennte Liste von name:score Einträgen. Einige Einträge haben eine nicht-ganzzahlige Punktzahl und sollten übersprungen werden (verwenden Sie compactMap).

Geben Sie die drei besten Spieler nach absteigender Punktzahl aus, einen pro Zeile, im Format:

<rank>. <name> - <score>

Die Ränge beginnen bei 1. Lösen Sie Gleichstände alphabetisch nach dem Namen auf. Wenn weniger als drei gültige Einträge vorhanden sind, geben Sie alle aus.

Geben Sie nach der Bestenliste Avg: <n> mit dem ganzzahligen Durchschnitt jeder gültigen Punktzahl aus (Richtung Null abgerundet, keine Dezimalstellen). Wenn keine gültigen Einträge vorhanden sind, geben Sie Avg: 0 aus.

Für die Eingabe alice:90,bob:bad,cara:85,dan:90,eve:70,fin:99 lautet die Ausgabe:

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

Probier es selbst

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

// TODO: compactMap zu (Name, Punktzahl); sortieren nach Punktzahl absteigend, Gleichstand nach Name;
// die Top 3 ausgeben; dann den Durchschnitt aller gültigen Punktzahlen

Alle Lektionen in Logik & Kontrollfluss