Here's my repo for my Advent of Code solutions. I'm currently migrating my old repo over to this one now that I have a clearer idea of how I want to structure everything.
Install required packages with:
pip install -r requirements.txtA directory for a new puzzle can be created by running (this example sets up the directory for year 2015 day 1):
./init.sh 2015 1The tests for all puzzles can be run with:
python -m unittestOr a specifiy year or day can be run with:
python -m unittest discover solutions.year_2015
python -m unittest discover solutions.year_2015.day_01Or to run a specific day's solution from outside the test environment:
python -m solutions.year_2015.day_01.solution| 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | |
|---|---|---|---|---|---|---|---|---|---|---|
| Day 1 | 🟢 🟢 | 🟢 🟢 | 🟢 🟢 | 🟢 🟢 | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | 🟢 🟢 |
| Day 2 | 🟢 🟢 | 🟢 🟢 | 🟢 🟢 | 🟢 🟢 | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | 🟢 🟢 |
| Day 3 | 🟢 🟢 | 🟢 🟢 | 🟢 🟢 | 🟢 🟢 | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | 🟢 🟢 |
| Day 4 | 🟢 🟢 | 🟢 🟢 | 🟢 🟢 | 🟢 🟢 | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | 🟢 🟢 |
| Day 5 | 🟢 🟢 | 🟢 🟡 | 🟢 🟢 | 🟢 🟢 | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | 🟢 🟢 |
| Day 6 | 🟢 🟢 | 🟢 🟢 | 🟢 🟢 | 🟢 🟢 | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | 🟢 🟡 |
| Day 7 | 🟢 🟢 | 🟢 🟢 | 🟢 🔵 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | 🟢 🟢 |
| Day 8 | 🟢 🟢 | 🟢 🟢 | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | 🟢 🟢 |
| Day 9 | 🟢 🟢 | 🟢 🟢 | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | 🟢 🟡 |
| Day 10 | 🟢 🟢 | 🟢 🟢 | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | 🟢 🟢 |
| Day 11 | 🟢 🟢 | 🟡 🟡 | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | 🟢 🟢 |
| Day 12 | 🟢 🟢 | 🟢 🟢 | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 |
| Day 13 | 🟢 🟢 | 🟢 🟢 | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | 🟢 🟢 |
| Day 14 | 🟢 🟢 | 🟢 🟡 | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟡 | 🟢 🟠 |
| Day 15 | 🟢 🔵 | 🟢 🟢 | 🟡 🟡 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | 🟢 🟢 |
| Day 16 | 🟢 🟢 | 🟢 🟢 | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ |
| Day 17 | 🟢 🟢 | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟡 | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ |
| Day 18 | 🟢 🟢 | 🟢 🟡 | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 |
| Day 19 | 🟢 🟢 | 🟢 🟡 | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 |
| Day 20 | 🟡 🟡 | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ |
| Day 21 | 🟢 🟢 | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ |
| Day 22 | 🟡 🟡 | 🟢 🟠 | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 |
| Day 23 | 🟢 🟢 | 🟢 🟡 | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 🟢 |
| Day 24 | 🟡 🟢 | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ |
| Day 25 | 🟢 🟢 | 🟢 🟢 | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | ⚪️ ⚪️ | 🟢 ⚪️ |
Key:
- 🟢: Solved
- 🔵: Solved, but with notes on possible optimizations or needs testing
- 🟡: Solved, but inefficient (> 15 seconds to execute)
- 🟠: Solved, with manual intervention
- 🔴: Unsolved / stuck
- ⚪️: Not started