Saltar al contenido

El código de colores

Enunciado

Nadia lleva media hora en el minijuego de descifrar: la máquina esconde una fila de fichas de colores y, a cada intento, contesta con dos números. Escribe una función que reciba secreto e intento, listas de enteros (un número por color) del mismo largo, con al menos una ficha. Regresa la lista [exactas, cambiadas]. exactas son las posiciones donde las dos traen el mismo color. Después, cada ficha del intento que no fue exacta busca en el secreto una de su color que no haya sido exacta ni esté ya usada; si la encuentra, suma 1 a cambiadas y esa ficha del secreto queda usada. Ninguna ficha del secreto cuenta dos veces.

Con secreto [3, 1, 1, 4] e intento [1, 1, 5, 1], la posición 1 es exacta. Quedan 3, 1 y 4 en el secreto, y 1, 5 y 1 en el intento: el primer 1 se lleva el único 1 libre y el otro ya no halla. Da [1, 1].

Ejemplos

  • El del ejemplo

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

  • Todas en su lugar

    [2, 5, 7], [2, 5, 7] → [3, 0]

  • Todas cambiadas

    [1, 2, 3], [3, 1, 2] → [0, 3]

  • Ningún color

    [1, 2], [3, 4] → [0, 0]

  • Repetidos en los dos

    [1, 1, 2], [1, 2, 1] → [1, 2]

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

Empiezas con esto

Python

def pistas(secreto, intento):
    pass

JavaScript

function pistas(secreto, intento) {
}
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 →