Friday 25 December 2020

Advent of Code 2020 (ii)

 


This year I managed to complete 43 of the 49 Advent of Code tasks (on Xmas day, i.e. today, you only get the 50th star if you have completed all previous 49 tasks). Really proud and happy that I participated every day for almost a full month because I have practised and learned a lot.

A few things that come to my mind:

  • I finally felt compelled to set up WSL2 on my laptop, which involved tweaking something on the bios. 
  • I cloned and tweaked a framework to keep some order on the solutions.
  • I used VS Code (instead of pycharm) and learned about passing arguments to the debugger.
  • I published my code to github, struggling with git commands from time to time (is there anyone who doesn´t??)
  • I googled my way through relative imports in python and vs code setup for projects, eventually dropping the framework in favour of a more simple solution.
  • Library of the month: Collections, I made heavy use of defaultdict, used Counter a few times and thought it was a pity that deque is O(n) for searches and not O(1).
  • Surprised I did not use pandas at all. Not surprised that I used networkx and numpy. I still need to get a hold on regular expressions though.
  • Got reasonably good at parsing files, however a colleague has suggested that I have a look at lark parser   
  • Found out that sadly John Conway passed away this last April.
  • Following another colleague´s advice, I borrowed Python Cookbook from our mini department library but only found time to go through first chapter. 
  • Chinese remainder theorem and Bézout's indentity
  • Needless to say I went into several rabbit holes.
  • Best rank position for Part 1: 1874 on Day 20, which ironically is one of the few days I didn´t manage to complete part 2.
  • Best rank position for Part 2: 2912 on Day 21
  • Quickest Part 1: 00:17:50 on Day 6 (but only rank ~6200)
  • Quickest Part 2: 00:33:40 also on Day 6 (but only rank ~6000)
  • Recurring issue: typing "for i in intVarName:" instead of "for i in range(intVarName)":
The whole experience was made even more enjoyable because a few colleagues joined a private leaderboard and a whatsapp group just for AoC, so this has been a running theme all this month (we were careful with spoilers, as not everyone was doing the puzzles at the same time).

I may try to finish the rest of the puzzles over the holidays. If you want to try AoC, you can join any time and do the puzzles at your own pace.

No comments: