Partie 1 : > 24h
Partie 2 : > 24h

Un problème qui est un peu dans l'esprit du jour 15. Il faut d'abord simuler un combat dans la partie 1, et trouver ensuite dans la partie 2 la valeur d'un paramètre qui permet de remporter le combat.

Le point le plus difficile pour moi a été l'écriture et le test d'expressions régulières pour l'analyse des données d'entrée.

#adventofcode

Solved Advent of Code 2015 Day 3 in C. Not too difficult, though I did have to write my own implementation of dynamic arrays, inspired by Go slices (covered in a separate article).

Thought process:

https://www.cdeveloper.co.uk/advent-of-code/2015/03.html

Wrapper code:

https://codeberg.org/pwaring/advent-of-code-c/src/branch/main/2015/03/03.c

Functions:

https://codeberg.org/pwaring/advent-of-code-c/src/branch/main/2015/03/03_functions.c

Tests:

https://codeberg.org/pwaring/advent-of-code-c/src/branch/main/2015/03/03_tests.c

#AdventOfCode #C

C Developer: Advent of Code 2015 Day 3: Perfectly Spherical Houses in a Vacuum

Partie 1 : 16:14
Partie 2 : > 24 h

Après une première partie très simple, venait une deuxième partie beaucoup plus difficile, combinant géométrie dans l'espace et théorie des graphes (intersection d'octaèdres et clique maximum).

Je ne suis pas sûr que mon algorithme fonctionne dans tous les cas de figure possibles et imaginables, mais il doit marcher pour tous les fichiers de données soumis dans le cadre de l'Advent of Code.

#adventofcode

Me: For fun and to improve my C skills, I will try and solve every Advent of Code puzzle using only C99 and the standard library. If I need something else (e.g. dynamic arrays, string explode/split), I will implement it myself. How hard can it be?

2015 Day 4: Find the first MD5 hash with five leading zeroes based on this input and an incrementing suffix.

Guess it's time to print off RFC 1321 and the Wikipedia page to get my head round this...

#AdventOfCode #C

Partie 1 : 5:14:19 (2 essais)
Partie 2 : 22:07:46

La partie 1 était assez facile, mais j'ai commis une erreur stupide qui m'a fait perdre pas mal de temps.

Pour la partie 2, j'ai beaucoup tâtonné pour trouver le meilleur algorithme de pathfinding, et j'ai finalement opté pour un A*. Avec une petite optimisation, j'ai réussi à réduire le temps dee calcul à 600ms.

#adventofcode

Partie 1 : 21:46:21 (2 essais)
Partie 2 : 21:58:38

Encore un problème d'émulation, faisant suite aux jours 16 et 19.

Encore une fois, il fallait comprendre le fonctionnement d'un programme en assembleur, et déterminer pour quelles valeurs initiales du registre 0 il finissait par s'arrêter.

#adventofcode

Partie 1 : > 24h
Partie 2 : > 24h

J'ai seulement validé il y a une heure la première partie de ce problème. J'avais la bonne solution hier, mais le code était trop lent et trop complexe. Je l'ai refait aujourd'hui, divisant le temps de calcul par 200 (10 ms au lieu de 2 secondes).

La partie 2 ne présentaitt quand à elle aucune difficulté, tous les calculs nécessaires étant déjà faits dans la partie 1. Il ne m'a fallu que 6 minutes pour la valider.

#adventofcode

I just completed "Cafeteria" - Day 5 - Advent of Code 2025

Yup, I'm still chugging along on 2025. And as always, part 2 makes me refactor part 1
https://github.com/jeffmallozzi/aoc2025-zig/blob/main/src/day05.zig

https://adventofcode.com/2025/day/5

#AdventOfCode #AoC #zig

aoc2025-zig/src/day05.zig at main · jeffmallozzi/aoc2025-zig

2025 Advent of Code in Zig. Contribute to jeffmallozzi/aoc2025-zig development by creating an account on GitHub.

GitHub
It brings me joy that Brian Goetz does #AdventOfCode in #Java https://www.youtube.com/watch?v=DrF4dCC0daE
Module Adoption? JDK Build Tool? Lombok? Backwards Compatibility? - Ask the Architects at JavaOne'26

YouTube

Partie 1 : 1:10:49
Partie 2 : 9:45:14

Ce problème est la suite du jour 16, avec un pointeur d'instructions en plus.

Pas à grand chose à dire sur la partie 1, assez simple.

La partie 2 nécessitait de comprendre le programme donné en entrée. Il s'agissait d'un calcul (très inefficace, en O(n^2)) de la somme des diviseurs d'un entier. J'ai donc écrit un équivalent en Scala de ce programme, avec un meilleur algorithme, qui s'exécute en O(sqrt(n)).

#adventofcode