My solutions written in Golang for Advent of Code 2019.
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 Go code. That means, after I retrieved the correct solution for a puzzle, I left the source code as it is without any cleanup.
If you want to see cleaner and better documented Go code, take a look at, e.g. my port scanner, poor man's encryption or Kafka playground.
Day | Problem | Solution | Topic |
---|---|---|---|
1 | The Tyranny of the Rocket Equation | 1 | Recursive computations |
2 | 1202 Program Alarm | 2 | Implement basic self-modifying CPU |
3 | Crossed Wires | 3 | Computing wire intersections and shortest signal runtime |
4 | Secure Container | 4 | Implementing a simple rule engine |
5 | Sunny with a Chance of Asteroids | 5 | CPU IO and branching |
6 | Universal Orbit Map | 6 | Graph traversal |
7 | Amplification Circuit | 7 | Execute and synchronize multiple parallel running cpu instances |
8 | Space Image Format | 8 | Multi-Layer image format parsing and visualization |
9 | Sensor Boost | 9 | Adding relative address mode to cpu |
10 | Monitoring Station | 10 | Raycasting |
11 | Space Police | 11 | Painting of CPU output |
12 | The N-Body Problem | 12 | Physical simulation of gravitation, cycle detection |
13 | Care Package | 13 | Implementing (and visualizing) perfect breakout (game) algorithm |
14 | Space Stoichiometry | 14 | Automatic equation solving, binary search |
15 | Oxygen System | 15 | Backtracking, cellular automata |
16 | Flawed Frequency Transmission | 16 | Mathemtical analysis (less programming) |
17 | Set and Forget | 17 | Visualization, path tracing and grammar builder |
18 | Many-Worlds Interpretation | 18 | Maze exploration, Graph search, Caching |
19 | Tractor Beam | 19 | Array arithmetic |
20 | Donut Maze | 20 | Backtracking, Path finding, Input parsing |
21 | Springdroid Adventure | 21 | Boolean expression solving |
22 | Slam Shuffle | 22 | Number theory |
23 | Category Six | 23 | Network simulation with 50 CPUs |
24 | Planet of Discord | 24 | Recursive cellular automata |
25 | Cryostasis | 25 | Brute-Force adventure playing |