Repaso - Tabla de posiciones
Parte de la sección Lógica y Flujo del Journey de Swift de Coddy — lección 32 de 56.
Desafío
IntermedioEstá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: 86Prué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
1Strings a fondo
Conteo e índicesMayúsculas, minúsculas y TrimBúsqueda en StringsDividir y unirReemplazo de subcadenasResumen: Validación de usuario4Conjuntos
Crear conjuntosUnión e intersecciónResta y diferencia simétricaSubconjunto y superconjuntoResumen - Filtro de etiquetas7Proyecto - Seguimiento de hábitos
Descripción general del proyectoMarcar como completado10Proyecto - Motor de cuestionarios
Descripción general del proyectoHacer preguntas2Rangos e Intervalos
Cerrados vs. SemiabiertosSaltos (Stride)Métodos de RangosRangos en SwitchResumen - Cuadrícula de calendario5Funciones de orden superior Pt. 1
MapFilterReduceEncadenar map, filter, reduceResumen - Estadísticas de palabras3Diccionarios
Declaración de diccionariosBúsqueda opcionalActualización de diccionariosIteración de diccionariosAgrupación de valoresResumen - Inventario6Funciones de orden superior - Parte 2
compactMapflatMapsorted(by:)Construcción de pipelinesRepaso - Tabla de posiciones