Vamos a definir el proceso de aplastar una serie de números. En un flechazo leemos la matriz de izquierda a derecha. Si en un momento nos encontramos con dos del mismo elemento en una fila, eliminamos el primero y duplicamos el segundo. Por ejemplo, aquí está el proceso de aplastar la siguiente matriz
[5,2,2,3]
^
[5,2,2,3]
^
[5,2,2,3]
^
[5,4,3]
^
[5,4,3]
^
El mismo elemento se puede plegar varias veces, por ejemplo, [1,1,2]
se convierte [4]
cuando se aplastan.
Llamaremos a una matriz inquebrantable cuando el proceso de aplastar esa matriz no la cambie. Por ejemplo, [1,2,3]
todavía está [1,2,3]
después de ser aplastado.
Su tarea es tomar una matriz y determinar la cantidad de aplastamientos necesarios para que no se pueda aplastar. Solo necesita admitir enteros en el rango de 0 a 2 32 -1
Este es el código de golf, por lo que las respuestas se puntuarán en bytes, siendo mejores menos bytes.
Casos de prueba
[1] -> 0
[1,1] -> 1
[2,1,1] -> 2
[4,2,1,1] -> 3
[2,2,2,1,1] -> 3
[0,0,0,0] -> 1
[4,0,0,0,4] -> 1
[4,0,0,0,0,4] -> 1
[] -> 0
0,0,0,0
solo 1
. Podría ser una idea mencionar explícitamente en alguna parte que estamos contando el número de veces que tenemos que recorrer un conjunto para destruirlo por completo y no , como pensé inicialmente, el número total de veces que aplastamos 2 números juntos.
[1,1,2,4,8]
devolver 1 o 4?