Menu
Coddy logo textTech

Repaso - Tabla de posiciones

Parte de la sección Lógica y Flujo del Journey de Swift de Coddy — lección 32 de 56.

challenge icon

Desafío

Intermedio

Estás produciendo una tabla de clasificación. Lee una sola línea de entrada: una lista separada por comas de entradas name:score. Algunas entradas tienen una puntuación que no es un número entero y deben omitirse (usa compactMap).

Imprime los tres mejores jugadores por puntuación descendente, uno por línea, en el formato:

<rank>. <name> - <score>

Los rangos comienzan en 1. Resuelve los empates por nombre alfabéticamente. Si existen menos de tres entradas válidas, imprímelas todas.

Después de la tabla de clasificación, imprime Avg: <n> con el promedio entero de cada puntuación válida (trunca hacia cero, sin decimales). Cuando no existan entradas válidas, imprime Avg: 0.

Para la entrada alice:90,bob:bad,cara:85,dan:90,eve:70,fin:99, la salida es:

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

Pruébalo tú mismo

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

// TODO: compactMap a (nombre, puntuación); ordenar por puntuación desc, desempate por nombre;
// imprimir los 3 mejores; luego el promedio de todas las puntuaciones válidas

Todas las lecciones de Lógica y Flujo