I solved problems from Advent of Code to learn and practice Data Structures and Algorithms (DSA) in Python. Categorized problems listed below summarize my learning experiences.
Puzzles that are not listed under any category were solved using the combinations of different Data Structures. Categorized days listed below are only primary examples of each corresponding category.
-
List
-
Queue, Stacks
-
Heap
-
Dictionaries, Hashmap
-
Tree, Graphs
-
Dijkstra's
-
Floyd Warshall
-
Dynamic Programming
-
Depth First Search
-
Breath First Search
-
Flood Fill
-
Quick Sort
-
Dijkstra's
-
Dictionaries, Hashmap
-
List
-
Dynamic Programming
-
Breath First Search
-
Depth First Search
Besides DSA, solving AOC also requires math. Listed below is a few examples
-
Matrix (rotation,transpose): day 5 2022,day 14 2023
-
Complex Numbers (to represent vectors): day 9 2022, day 17 2022
-
Linear Algebra: day 15 2022, day 6 2023
-
Modulus :day 14 2023
- Syntax:
- lambda
- match-case statement
- zip
- enumerate
- eval
- reduce
- map
- any, all
- join
- sorted
- Modules:
- collections: defaultdict, deque, namedtuple, Counter
- itertools: groupby, permutation, cycle
- re (regex)
- math : lcm, sqrt, floor, ceil, remainder