My solutions to Advent Of Code 2023!
I tried not to use my main languages (C++/Python) for as long as I can, to make it a little harder for myself). During the event itself I got until day 18 but then had to finish up my assignments and prepare for uni exams. I am planning to finish the remaining problems at a later time, after I am done with Jason Gregory's Game Engine Architecture book.
- Improve my regex/parsing skills
- Learn Lua
- Improve my understanding of niche and obscure algorithms by looking at other people's solutions once I solve the day myself
Day | Difficulty | Notes | Learned & Revised |
---|---|---|---|
Day 1 | 4/10 | The second part was pretty tedious | Aho-Corasick |
Day 2 | 2/10 | Anticipated some probability stuff... | ... |
Day 3 | 5/10 | 2D grid, need to brush up on pathfinding | ... |
Day 4 | 2/10 | Extremely easy for some reason | Set Intersection Implementation |
Day 5 | 7/10 | Pretty interesting solution without bruteforce | Interval splitting/reverse mapping |
Day 6 | 1/10 | EASIEST | ... |
Day 7 | 3/10 | Quite tedious but very easy | ... |
Day 8 | 4/10 | Would've been more interesting if the end states did not teleport you to a state adjacent to the start state. Currently you just take the lcm, but with that change, you would've had to solve Diophantine equations which are fun! | ... |
Day 9 | 2/10 | Expected to see Gregory-Newton formula... | Gregory-Newton formula |
Day 10 | 6/10 | Best day so far. I used Jordan Curve Theorem but there are so many other solutions, it's great | Grid expansion (1x1 -> 3x3 or 2x2), Raycasting (evenodd) algorithm for a point inside the polygon, Winding number (nonzero) algorithm for the point inside the polygon, Jordan Curve Theorem, Stack based floodfill, Scan fill, Pick's Theorem, Shoelace Formula (which is apparently a special case of Green's Theorem) |
Day 11 | 3/10 | Apparently can be done in O(n) since dimensions are completely independent when taking manhattan distance. My solution is O(n2) but even that was enough to get the answer instantly, so pretty easy | ... |
Day 12 | 8/10 | Pretty hard, took me some time to get the DP solution correct | ... |
Day 13 | 5/10 | Much easier than Day 12. The statement of the problem is a bit vague, but solved it quite fast | Levenshtein distance, Hamming distance |
Day 14 | 6/10 | Quite easy | ... |
Day 15 | 5/10 | Hashtables! Also pretty easy | ... |
Day 16 | 6/10 | The logic was tedious, but overall not too hard | ... |
Day 17 | 8/10 | Bruhhh, spent way too much time on this | Pathfinding (spec. A* & Dijkstra) |
Day 18 | 6/10 | Not that hard tbh | Shoelace again... |
Day 19 | 7/10 | 4D Interval arithmetic :-) handling rules took time | Interval arithmetic |
Day 20 | 0/10 | . | ... |
Day 21 | 0/10 | . | ... |
Day 22 | 0/10 | . | ... |
Day 23 | 0/10 | . | ... |
Day 24 | 0/10 | . | ... |
Day 25 | 0/10 | . | ... |