Los hot cakes de Don Chuy
- O(n²) · Muy difícil
- Plan completo
- Python
- JavaScript
- ciclos
- listas
- índices
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):
passJavaScript
function cuentaVolteos(torre) {
}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.