Message Boards Message Boards


Advent of Code 2020 solutions in Wolfram Language

Posted 24 days ago
3 Replies
14 Total Likes

The Advent of Code challenge just finished for 2020. I did the first one five years ago or so. I was in the mood again this year. I've completed 46 of the 49 puzzles (2 per day). I think they've increased the difficulty some from what I remember, or my skills are deteriorating, haha. I've attached my solutions so far in the notebook.

The people who make the leaderboard are unbelievably fast at solving the puzzles, but one of the leaders posts his Python solutions after scoring is locked for the day, and I think several of my Wolfram solutions look structurally a bit more concise and clean in comparison. Although again, it's hard not to be impressed by how quickly the top 100 people solve the puzzles. They've often solved both parts of the day's puzzle before I finish reading the first part, haha.

Some highlights for me were using the built-in Chinese remainder theorem function for puzzle 13.2:

ChineseRemainder @@ 
  MapIndexed[If[NumberQ@#, {-#2[[1]] + 1, #}, Nothing] &, 
   Import["input.txt", "CSV"][[2]]]

And solving 17.2 with the built in cellular automaton function with outer totalistic code 224 in 4 dimensions:

Count[CellularAutomaton[<|"OuterTotalisticCode" -> 224, 
   "Dimension" -> 
    4|>, {{{Characters@Import["input.txt", "List"] /. {"#" -> 1, 
       "." -> 0}}}, 0}, {{{6}}}], 1, \[Infinity]]

They actually had three days focused on cellular automata this year, which was pretty fun.

Anyway, I can't guarantee I'm going to get around to solving the last three puzzles, so I figured I'd go ahead and post what I had. Merry Christmas and happy holidays!