• Home
  • About
    • 康青旭 - Germán Caggianese photo

      康青旭 - Germán Caggianese

      Refactoring entropy in my Mind

    • Learn More
    • Email
    • Instagram
    • Github
    • Codeberg   Codeberg
  • All Posts
  • Projects
  • Areas
  • Resources

Advent of Code 2025 - Dia 3 en D

30 Dec 2025

Reading time ~5 minutes

“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

  • D programming language

Puzzle Dia 3: Lobby

Parte uno:

  1. int jolt = 0;
  2. Hacer una lista y una copia del input: og, aux1.
  3. aux1 descarta el último valor. Ej.: 987654321111118 -> 98765432111111
  4. Tomar el máximo acá -> jolt += aux1.max*10
  5. Crear una segunda lista aux2, slice de og desde la posición siguiente al máximo anterior. Ej.: 98765432111111, max = 9 -> aux2 = 87654321111118
  6. Tomar el máximo acá -> jolt += aux2.max

Parte dos:

  1. long jolt = 0;
  2. multiplier = 10^11 (porque estamos construyendo un número de 12 dígitos)
  3. 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 maxVal desde window -> jolt += maxVal * multiplier
    • Cortar og desde maxIdx+1 en adelante (descartar todo hasta la elección inclusive). Ej.: si se eligió 4 en idx 2 -> og pasa a ser [2,3,4,2,3,4,2,7,8]
    • multiplier /= 10
  4. Resumen: elegir el dígito más alto disponible que todavía deje suficientes dígitos para completar las 12 elecciones.

A menos que se indique lo contrario, el contenido del sitio web está bajo la licencia Creative Commons Atribución/Reconocimiento 4.0 Internacional.

© 2026 Germán Caggianese(康青旭)