Saltar al contenido

Los números de las camisetas

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):
    pass

JavaScript

function subidas(pedidos) {
}
Resolver este reto

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.

Más retos de O(n log n)

Ver todos los retos →