La mesa del cartógrafo
- O(n²) · Muy difícil
- Plan completo
- Python
- JavaScript
- condicionales
- ciclos
- listas
Enunciado
Palma de Mallorca, 1375. Yehuda dibuja cartas náuticas y su mesa solo tiene espacio para cupo cartas abiertas; las demás duermen enrolladas en la bodega. Recibes pedidos, la lista de las cartas que va a pedir, en orden (enteros; puede venir vacía y con repetidos), y cupo, un entero mayor que 0. La mesa empieza vacía. Por cada pedido: si la carta ya está en la mesa, no baja, y esa carta pasa a ser la usada más recientemente. Si no está, baja por ella; si la mesa ya tiene cupo cartas, antes devuelve la que lleva más tiempo sin usarse, y la nueva queda como la más reciente. Regresa un entero: cuántas veces bajó.
Con [1, 2, 3, 1, 4, 2] y cupo 3: baja por el 1, el 2 y el 3. El 1 ya está, así que no baja, y ahora el que lleva más sin usarse es el 2. Por el 4 baja y devuelve el 2; por el 2 baja otra vez y devuelve el 3, que ya es el más viejo. Bajó 5 veces.
Ejemplos
El del ejemplo
[1, 2, 3, 1, 4, 2], 3 → 5
Usarla la salva
[1, 2, 1, 3, 1, 2], 2 → 4
Siempre la misma
[4, 4, 4, 4], 1 → 1
Cupo de una sola
[1, 2, 1, 2], 1 → 4
Caben todas
[3, 1, 3, 2, 1], 5 → 3
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def veces_que_baja(pedidos, cupo):
passJavaScript
function vecesQueBaja(pedidos, cupo) {
}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.