“Algún tipo de sobrecarga eléctrica parece haberlos quemado. Voy a intentar ponerlos en línea pronto.”
Traducción de la publicación original en inglés.
Github: GCaggianese/AoC-2025/D3
Puzzle Dia 3: Lobby
Parte uno:
int jolt = 0;- Hacer una lista y una copia del input:
og,aux1. aux1descarta el último valor. Ej.:987654321111118->98765432111111- Tomar el máximo acá ->
jolt += aux1.max*10 - Crear una segunda lista
aux2, slice deogdesde la posición siguiente al máximo anterior. Ej.:98765432111111, max = 9 ->aux2=87654321111118 - Tomar el máximo acá ->
jolt += aux2.max
Parte dos:
long jolt = 0;multiplier = 10^11(porque estamos construyendo un número de 12 dígitos)- Para i = 0 a 11 (eligiendo 12 dígitos):
- remaining~needed~ = 12 - i
- window = og[0 .. og.length - remaining~needed~ + 1] (deja suficientes elementos para futuras elecciones). Ej.: primera elección desde
234234234234278, se necesitan 12 dígitos, window =[2,3,4,2](debe dejar 11 para después). - Elegir
maxValdesde window ->jolt += maxVal * multiplier - Cortar
ogdesdemaxIdx+1en adelante (descartar todo hasta la elección inclusive). Ej.: si se eligió 4 en idx 2 ->ogpasa a ser[2,3,4,2,3,4,2,7,8] multiplier /= 10
- Resumen: elegir el dígito más alto disponible que todavía deje suficientes dígitos para completar las 12 elecciones.