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.

  • gerikson@awful.systems
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    19 days ago

    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

    • zogwarg@awful.systems
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      19 days ago
      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