copy pasting the rules from last year’s thread:
Rules: no spoilers.
The other rules are made up aswe go along.
Share code by link to a forge, home page, pastebin (Eric Wastl has one here) or code section in a comment.
Day 9 seemed pretty straightforward, don’t really have anything to add.
I had a lot of trouble because my input was truncated, despite the site warning me about that. Did I listen? I did not.
edit
day 9 discussion
Principal Skinner moment
“Did I miscopy the input?”
“No, it is my algorithm that is wrong”
kinda satisfying to figure out I was correct all along.
Part 2 is not as fast as I’d like (14s), but faster than it was. People on reddit are wittering on about search trees, me I just sling Perl hashrefs around
https://github.com/gustafe/aoc2024/blob/main/d09-Disk-Fragmenter.pl
Day 9 discussion
Part two for me was also very slow until I, speed up the index search by providing a lower bound for the insertion. for every insertion of size “N”, I have an array lower = [null, 12, 36, …], since from the left any time you find free space for a given size, the next time must be at an index at least one larger, which makes it close to being O(N) [assuming search for the next free space is more or less constant] instead of O(N^2), went from about 30s to 2s. https://github.com/zogwarg/advent-of-code/blob/main/2024/jq/09-b.jq