I just completed "Trash Compactor" - Day 6 - Advent of Code 2025
Implemented my own Vertical Slice iterator over a two dimensional slice. I was quite pleased with that.
https://github.com/jeffmallozzi/aoc2025-zig/blob/main/src/day06.zig
I just completed "Trash Compactor" - Day 6 - Advent of Code 2025
Implemented my own Vertical Slice iterator over a two dimensional slice. I was quite pleased with that.
https://github.com/jeffmallozzi/aoc2025-zig/blob/main/src/day06.zig
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.
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
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.
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...
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.
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.
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.
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
