Dada una lista de trabajos, que deben hacerse en orden, cada uno de los cuales tiene que hacer un espacio, cuánto tiempo llevará realizarlos si, después de hacer un trabajo, no se puede hacer el mismo trabajo para los siguientes dos espacios (enfriamiento de espacios )? Sin embargo, se puede asignar un trabajo diferente en estas ranuras de enfriamiento.
Por ejemplo,
[9,10,9,8] => output: 5
Porque los trabajos se asignarán como [9 10 _ 9 8].
1. Primero, 9 necesita dos puntos de enfriamiento _ _. Entonces comenzamos con 9 _ _.
2. El siguiente trabajo 10 es diferente del trabajo anterior 9, por lo que podemos asignar uno de _ _. Entonces lo haremos 9 10 _.
3. En tercer lugar, 9 no se puede asignar ahora, ya que el primer trabajo 9 es el mismo trabajo y necesita tiempo de enfriamiento. 9 10 _ 9.
4. Por último, 8 no es igual a los otros dos trabajos anteriores, por lo que puede asignarse inmediatamente después de 9 y, dado que este es el último trabajo, no necesita tiempo de enfriamiento. La lista final es 9 10 _ 9 8y la salida esperada es 5, que es el número de puntos (o número de espacios)
Casos de prueba:
[1,2,3,4,5,6,7,8,9,10] => output : 10 ([1 2 3 4 5 6 7 8 9 10])
[1,1,1] => output: 7 ([1 _ _ 1 _ _ 1])
[3,4,4,3] => output: 6 ([3 4 _ _ 4 3])
[3,4,5,3] => output: 4 ([3 4 5 3])
[3,4,3,4] => output : 5 ([3 4 _ 3 4])
[3,3,4,4] => output : 8 ([3 _ _ 3 4 _ _ 4])
[3,3,4,3] => output : 7 ([3 _ _ 3 4 _ 3])
[3,2,1,3,-4] => output : 5 ([3 2 1 3 -4])
[] => output : 0 ([])
[-1,-1] => output : 4 ([-1 _ _ -1])
El valor de entrada puede ser cualquier número entero (negativo, 0, positivo). La longitud de la lista de trabajos es 0 <= longitud <= 1,000,000.
La salida será un número entero, el número total de ranuras, que se indica en el caso de prueba como salida. La lista dentro del paréntesis es cómo se generaría la salida.
Criterio ganador
código-golf
[]?