My solutions written in Golang, Java and Kotlin for Advent of Code 2020.
Note that this code is hacky, not polished or refactored in any way, i.e. it is probably the worst spaghetti code you can imagine. Its sole purpose was to solve the puzzles, it should not be used as example for good code. That means, after I retrieved the correct solution for a puzzle, I left the source code as it is without any cleanup. Or stated otherwise, I intentionally gave myself the permission to hack around...
Day | Problem | Topic |
---|---|---|
1 | Report Repair | Simple equation solving |
2 | Password Philosophy | Implement validation parser |
3 | Toboggan Trajectory | Geometrical analysis on an infinite grid |
4 | Passport Processing | Solve logic puzzle with interdependent variables |
5 | Binary Boarding | Solve a SAT-based problem |
6 | Custom Customs | Interdependent boolean expressions |
7 | Handy Haversacks | Parse and compute recursive expressions |
8 | Handheld Halting | Simulate simple CPU with self-modifying code |
9 | Encoding Error | Numeric puzzle with large number of inputs |
10 | Adapter Array | Computing and processing large number of permutations |
11 | Seating System | Mixture of cellular automata and general 2D geometry |
12 | Rain Risk | Simulate ship movements and relative computations |
13 | Shuttle Search | Number theory (chinese remainder formula) |
14 | Docking Data | Bitwise binary computations |
15 | Rambunctious Recitation | Game simulation with intelligent caching |
16 | Ticket Translation | Set-based combinatorial puzzle solving |
17 | Conway Cubes | Simulating a 3D conway cube |
18 | Operation Order | Parsing mathematical expressions |
19 | Monster Messages | Parsing a BNF grammar |
20 | Jurassic Jigsaw | Tile matching of a split and randomized image. This was probably one of the most difficult puzzles I've ever solved in AOC. |
21 | Allergen Assessment | Breadth-First solver for pattern matching |
22 | Crab Combat | Modulo-based array arithmetic |
23 | Crab Cups | Circular linked list operations |
24 | Lobby Layout | Cellular automata in a hexagonal grid |
25 | Combo Breaker | Public key cryptography |