Saltar al contenido

Los hot cakes de Don Chuy

Enunciado

Los domingos, en la fonda de Don Chuy, los hot cakes salen chuecos: se apilan como caen. Don Chuy los acomoda con la pura espátula, del más grande abajo al más chico arriba, y siempre con el mismo método; su nieta cuenta los volteos para ver si le ganó al domingo pasado.

Recibes torre, los tamaños de arriba hacia abajo (enteros positivos, todos distintos; puede venir vacía). Voltear k es darle la vuelta a los primeros k de la lista. Para m desde el largo hasta 2, bajando de uno en uno, busca el más grande entre los primeros m, en la posición i. Si i es m - 1, ya está en su lugar y no hace nada. Si no, primero, solo si i no es 0, voltea i + 1 para subirlo hasta arriba; luego voltea m para bajarlo a su lugar. Regresa cuántos volteos hizo. Con [2, 4, 1, 3]: con m 4, el 4 está en 1, voltea 2 ([4, 2, 1, 3]) y voltea 4 ([3, 1, 2, 4]); con m 3, el 3 ya está arriba y solo voltea 3 ([2, 1, 3, 4]); con m 2 voltea 2. Regresa 4. Vacía, de uno o ya acomodada, regresa 0.

Ejemplos

  • El ejemplo

    [2, 4, 1, 3] → 4

  • El más grande ya está arriba

    [3, 1, 2] → 2

  • Al revés, un solo volteo

    [4, 3, 2, 1] → 1

  • Ya acomodada

    [1, 2, 3, 4] → 0

  • Una torre de cinco

    [5, 1, 4, 2, 3] → 6

Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.

Empiezas con esto

Python

def cuenta_volteos(torre):
    pass

JavaScript

function cuentaVolteos(torre) {
}
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²)

Ver todos los retos →