Home

Awesome

Advent of Code 2018

Solutions to the Advent of Code 2018 edition by Jeroen Heijmans.

Running

Pick your poison:

Lessons

Here's what I learned (or noticed) each day.

  1. You should prepare if you want to compete in challenges.
  2. C#'s LINQ features are not "like riding a bike".
  3. Don't use all input you get for problems.
  4. I have a healthy fear of DateTime types, and avoid them unless needed.
  5. Using mostly "for each" in app development, I almost forgot "Off By One" errors existed.
  6. Sets are fast for 'Contains(...)` operations.
  7. God I wish I knew Python and its graph libraries...
  8. Static typing can slow you down a lot in AoC.
  9. Doubly linked lists are the bomb!
  10. Not everything is (nor should be) easily unit-testable
  11. Having a partner that understands (and puts up with) your hobbies is golden!
  12. Advent of Code is the Game of Life for one month a year.
  13. Object Oriented programming sometimes still shines.
  14. Choose the right data structure for the right job.
  15. I have determination! (And also spent 17+ hours over two days on this puzzle.)
  16. Bulky, precise work requires concentration.
  17. Physics are fun!
  18. Excel to the rescue (for a quick & dirty answer). Again.
  19. I despise low level programming and debugging.
  20. Real regex engines must be mindbending to build.
  21. I abhor low level programming and debugging.
  22. Pathfinding in puzzles is tricky. Pathfinding in real games must be grueling.
  23. I didn't know what "SMT" was, and am apparently quite bad at handcrafting one.
  24. Flavor and context to problems mean a lot to me!
  25. Being precise is hard. Being precise at 05:00 in the morning is harder.

Compendium Repositories

I've created a browser extension for Google Chrome and Mozilla Firefox. It is open source to spice up your private leaderboard page with graphs if you want to contribute!

Here's direct links to every year's solutions I have so far: