In my previous post on LinkedIn [1], I sent a ho-ho-hopeful plea that you would join me in playing Advent of Code this year. So, how's it going? We're more than halfway through, and at this point, the going usually gets a bit tougher.
Given the commitment, it's not uncommon to see people drop off, but there will always be time after the holidays. The tricky bit is getting the puzzles completed in a reasonable time from this day forward.
As I previously mentioned, my weapon of choice is Python (using my toolkit [2]), which some may find unusual since I tell them I also play competitively on *execution time* (I don't try for leaderboards).
Usually, if I ask, "How do I make this faster?" the first answer is, "Don't use Python." 😂 But I love Python. I love the Zen of Python. Cloudsmith is almost entirely written in Python. It can be fast, but you have to work for it.
Inspired by
@dps's previous blog post about completing Advent of Code 2023 in less than one second [2], I also wanted to continue the trend. With some not-so-mild sweating, I'm doing OK so far (see image). *
There have been many grid-related problems this year, and my new joke is that there are actually *three* problems in computer science: naming things, caching things, off-by-one errors, and more grids.
So, what's your favorite puzzle so far if you're playing? I immensely enjoyed Day 9 and Day 13. Day 9 because it was nostalgic writing a mini disk defragmenter (ah, the olden days!) Day 13 = Linear Algebra saves the day.
* Timings executed over 20 runs (pypy JIT optimizes); cold time = 487ms. 😅Interestingly, this is still significantly faster than CPython 3.13, which executes in 535ms and doesn't do JIT optimization, so it's consistently around that.
ALT Advent of Code: Day 14 Summary