Advent of Code 2020
Saturday, December 26. 2020
As I don't have too many projects on my hands during this COVID-19 ridden year, I decided to go for an ultimate time-sink of AoC 2020.
For the curious, here are my stats:
----Part 1----- ----Part 2-----
Day Time Rank Time Rank
23 03:35:13 5086 - -
19 09:53:13 8934 09:53:26 5961
18 03:08:25 6521 04:04:25 6063
17 16:12:13 16057 16:12:23 15108
16 03:01:21 9251 03:52:53 6641
15 02:14:07 8224 02:16:33 6855
14 02:54:23 8940 03:52:58 7359
13 04:20:46 13423 06:15:57 7818
12 04:26:10 12452 04:55:22 10616
11 02:34:45 9354 03:22:14 8110
10 02:46:44 15237 04:17:26 10408
9 01:52:12 11970 02:13:22 11396
8 01:49:09 12056 03:06:07 12907
7 04:12:28 14520 04:12:38 11238
6 03:30:29 17152 03:46:03 16033
5 04:28:02 18252 05:15:07 19367
4 02:17:40 14478 02:38:02 10416
3 02:41:11 16008 02:53:35 15164
2 04:30:05 23597 04:37:14 21925
1 >24h 77025 >24h 72031
My weapon-of-choice was Python. I'm a fan of IntelliJ, so I wrote my code with that.
As you can see, I didn't complete all of them. It's mostly about time required to complete the latter ones. As an example 19 took way too many hours in a Saturday, I chose to opt out at that point. I did have time to complete first part of 23.
1-9 were really trivial ones. Task in 7 was really badly worded, but after couple of failures manageable. 10 was very tricky for the optimization requirement. It is possible to populate an entire tree, but it is so heavy on resources and time-consuming, going for the math was the better way. 11 and anything after it was beyond trivial. 13 was a huge math problem and it took a while to solve. 17 was a 3D game-of-life (a 2D GoL was done in 11 already) and required really careful work. 18 involved solving reverse polish notation calculations and I considered that as rather easy. Then came 19 which involves parsing a set of rules, but given references to other rules, the approach becomes tricky and tangled soon. I completed it and decided it would take too much of my daily hours to complete any subsequent tasks. However, for 23 I did spend couple minutes just to realize my approach was badly optimized for any large set of data. At that point I churned.
Initially I did enjoy the tasks, but when the complexity ramped up I was torn. I didn't want to not do it just because the was complexity, but on the other hand writing code to be discarded for hours wasn't the best use of my time while Chrismas was nearing. At that point I didn't enjoy the tasks anymore, they were more like chores I "had" to do.
Next year, the AoC will probably be arranged as it has been since 2015. I may not participate on that one.