Los números de las camisetas
- O(n log n) · Difícil
- Plan completo
- Python
- JavaScript
- listas
- ordenar
- ciclos
Enunciado
El día de la foto oficial, cada jugador llega con el número que quiere en la espalda, pero en un equipo no puede haber dos camisetas iguales. Pasan uno por uno, en el orden de la lista: si su número está libre, se lo queda; si no, sube al siguiente número libre, sin tope. El utilero ya notó que el orden en que pasen no cambia el total.
Escribe una función que reciba pedidos, una lista de enteros de 0 en adelante (puede venir vacía), y regrese la suma de cuánto subió cada número. Con [3, 2, 1, 2, 1, 7]: el 3, el 2 y el primer 1 se quedan; el segundo 2 choca, y el 3 también está tomado, así que llega a 4 (sube 2); el segundo 1 sube hasta el 5 (sube 4); el 7 se queda. Regresa 6. Si nadie choca, o si no hay nadie, regresa 0.
Ejemplos
El del ejemplo
[3, 2, 1, 2, 1, 7] → 6
Nadie choca
[4, 8, 1] → 0
Cuatro piden el mismo
[5, 5, 5, 5] → 6
Un solo jugador
[7] → 0
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def subidas(pedidos):
passJavaScript
function subidas(pedidos) {
}Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.