Me encontré con este problema mientras trabajaba en otro desafío que estoy haciendo para este sitio. En ese desafío utilizo " Mario Kart 8 Scoring ". La cantidad de puntos que obtiene el jugador en el puesto número k está representada por esta matriz de 1 índice: [15,12,10,9,8,7,6,5,4,3,2,1]. Entonces, el primer lugar obtiene 15 puntos, el segundo lugar obtiene 12 puntos, etc.
Es bastante fácil asignar puntos como este, sin embargo, la parte difícil viene con cómo manejo los lazos. Lo que hago es dar a cada jugador empatador el promedio de los puntos dados para cada lugar de empate. Por ejemplo, si solo el 1 ° y el 2 ° empate, ambos jugadores obtienen (15 + 12) / 2 = 13.5 puntos. (Nota: se le permite redondear al int más cercano, por lo que 13 o 14 también son aceptables). Luego, del 3 ° al 12 ° lugar obtenga la cantidad normal de puntos para su posición.
Desafío
Dados 12 puntajes enteros no negativos que se ordenan de manera decreciente, genera el número de puntos que obtiene cada jugador. También puede tomar la lista de puntos [15,12,10,9, ...] como entrada. Tenga en cuenta que la cantidad de puntos que obtiene cada jugador no depende de los valores reales de los puntajes, sino de cómo se comparan con los otros puntajes.
Casos de prueba
- [21,21,15,14,12,9,6,5,4,3,2,1] => [ 14,14 , 10,9,8,7,6,5,4,3,2, 1]
- [20,15,15,15,10,9,8,7,6,5,4,3] => [15, 10,10,10 , 8,7,6,5,4,3,2, 1]
- explicación: (12 + 10 + 9) / 3 = 10.3333
- [1,1,1,1,1,1,1,1,1,1,1,1] => [ 7,7,7,7,7,7,7,7,7,7,7, 7 ]
- explicación: (15 + 12 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1) / 12 = 6.8333
- [20,20,20,20,10,10,10,9,8,7,6,5] => [ 12,12,12,12 , 7,7,7 , 5,4,3,2, 1]
- explicación: (15 + 12 + 10 + 9) / 4 = 11.5, (8 + 7 + 6) / 3 = 7
- [100,99,98,95,95,95,94,93,93,92,91,91] => [15,12,10, 8,8,8 , 6, 5,5 , 3, 2, 2 ]
- explicación: (9 + 8 + 7) / 3 = 8, (5 + 4) / 2 = 4.5, (2 + 1) / 2 = 1.5
Relacionado: Clasifique una lista de puntajes con "saltos"