Menu
Coddy logo textTech

Récapitulatif - Tableau de classement

Fait partie de la section Logique et Flux du Journey Swift de Coddy — leçon 32 sur 56.

challenge icon

Défi

Moyen

Vous produisez un classement. Lisez une seule ligne d'entrée : une liste d'entrées name:score séparées par des virgules. Certaines entrées ont un score qui n'est pas un entier et doivent être ignorées (utilisez compactMap).

Affichez les trois meilleurs joueurs par score décroissant, un par ligne, au format :

<rank>. <name> - <score>

Les rangs commencent à 1. En cas d'égalité, tranchez par nom alphabétiquement. S'il y a moins de trois entrées valides, affichez-les toutes.

Après le classement, affichez Avg: <n> avec la moyenne entière de chaque score valide (tronquée vers zéro, sans décimales). Lorsqu'aucune entrée valide n'existe, affichez Avg: 0.

Pour l'entrée alice:90,bob:bad,cara:85,dan:90,eve:70,fin:99, la sortie est :

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

Essayez vous-même

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

// TODO: compactMap vers (nom, score) ; trier par score décroissant avec le nom comme critère de départage ;
// afficher les 3 premiers ; puis la moyenne de tous les scores valides

Toutes les leçons de Logique et Flux