Solutions to the 2020 Advent of Code, in at least Python and Go. I make no claims that they're the best way to do things, but if they produce a result, I'm happy.
* means that a given day has a visualisation
Day | Python | Go | Notes | |
---|---|---|---|---|
1 | Complete | Link | Link | |
2 | Complete | Link | Link | |
3 | Complete | Link | Link | |
4 | Complete | Link | Link | |
5 | Complete | Link | Link | |
6 | Complete | Link | Link | |
7 | Complete | Link | Link | |
8 | Complete | Link | Link | |
9 | Complete | Link | Link | |
10 | Complete | Link | Link | |
11 * | Complete | Link | Link | |
12 * | Complete | Link | Link | |
13 | Partially complete | Link | ||
14 | Complete | Link | Link | |
15 * | Complete | Link | Link | |
16 | Complete | Link | Link | |
17 | Partially complete | Link | ||
18 | Partially complete | Link | ||
19 | Complete | Link | Link | |
20 | Partially complete | Link | Only part one solved | |
21 | Partially complete | Link | ||
22 | Partially complete | Link | ||
23 | Incomplete | |||
24 | Partially complete | Link | ||
25 | Complete | Link | Link |
2020.01 - Find two/three numbers that sum to 2020
2020.02 - Data validation
2020.03 - Finding obstacles on a given path through a 2D array
2020.04 - More data validation!
2020.05 - Binary data/searching but also not
2020.06 - Dealing with combinations of characters
2020.07 - Dealing with large amounts of nested objects
2020.08 - Write a simple interpreter with infinite loop detection, trial and error to find a value to modify
2020.09 - Finding numbers that match different conditions within a sequence
2020.10 - Finding permutations of a list that satisfy various constraints
2020.11 - Build a custom cellular automata with weird neighborhoods
2020.12 - Moving a virtual boat around a virtual sea with weird virtual instructions
2020.13 - Chinese remainder theorem + buses = ???
2020.14 - Funky bitmasks
2020.15 - The Van Eck sequence
2020.16 - Working out what values in a list means what by means of deduction and a set of rules
2020.17 - 3D 4D cellular automata!
2020.18 - Maths, but if BIDMAS didn't exist (the shunting yard algorithm)
2020.19 - Generating regexes as long as longer than your arm and then making them recursive
2020.20 - Solving a jigsaw programmatically and then looking for specific sequences of characters within the solved jigsaw
2020.21 - Making deductions about values that are contained within multiple lists
2020.22 - Simulating card games, and then making that card game recursive
2020.23 - Crabs playing with cups
2020.24 - Cellular automata, but this time with hexagons
2020.25 - Reversing handshakes between a door and a RFID card ("Unfortunately for the door, you know a thing or two about cryptographic handshakes")
(Boilerplate code and code that generates visualisations is not included)
--------Part 1-------- --------Part 2--------
Day Time Rank Score Time Rank Score
25 07:19:29 7966 0 - - -
24 06:03:39 7277 0 06:50:17 6382 0
22 06:37:56 9949 0 07:46:00 7333 0
21 07:07:02 7031 0 07:34:43 6897 0
20 12:40:05 9000 0 - - -
19 07:14:52 7163 0 10:08:56 6083 0
18 13:02:40 15057 0 17:01:47 15031 0
17 19:16:58 17492 0 19:48:07 16771 0
16 08:37:03 16270 0 11:24:49 13401 0
15 11:38:11 20197 0 11:50:13 18272 0
14 13:01:47 20661 0 14:41:22 17482 0
13 05:43:41 16692 0 07:55:25 9661 0
12 07:49:19 18545 0 09:08:54 16885 0
11 12:07:36 24295 0 12:38:25 19932 0
10 13:38:25 35155 0 15:10:40 24968 0
9 12:26:06 34364 0 12:55:00 32791 0
8 06:56:11 26688 0 07:13:46 22653 0
7 12:03:04 29181 0 13:02:47 25777 0
6 05:03:12 23094 0 05:22:54 21650 0
5 06:42:59 25458 0 07:27:47 25658 0
4 04:59:28 26236 0 11:53:07 34630 0
3 07:18:34 33113 0 13:03:50 45815 0
2 11:33:00 47471 0 11:38:14 44961 0
1 18:09:35 65566 0 18:12:26 60825 0