Welcome to my solutions for Advent of Code 2024! This repository contains my Python implementations for all 25 days of coding challenges.
Day | Part 1 | Part 2 | Stars | Challenge |
---|---|---|---|---|
Day 1 | ✅ | ✅ | ⭐⭐ | Historian Hysteria |
Day 2 | ✅ | ✅ | ⭐⭐ | Red-Nosed Reports |
Day 3 | ✅ | ✅ | ⭐⭐ | Mull It Over |
Day 4 | ✅ | ✅ | ⭐⭐ | Ceres Search |
Day 5 | ✅ | ✅ | ⭐⭐ | Print Queue |
Day 6 | ✅ | ✅ | ⭐⭐ | Guard Gallivant |
Day 7 | ✅ | ✅ | ⭐⭐ | Bridge Repair |
Day 8 | ✅ | ✅ | ⭐⭐ | Resonant Collinearity |
Day 9 | ✅ | ✅ | ⭐⭐ | Disk Fragmenter |
Day 10 | ✅ | ✅ | ⭐⭐ | Hoof It |
Day 11 | ✅ | ✅ | ⭐⭐ | Plutonian Pebbles |
Day 12 | ✅ | ✅ | ⭐⭐ | Garden Groups |
Day 13 | ✅ | ✅ | ⭐⭐ | Claw Contraption |
Day 14 | ✅ | ✅ | ⭐⭐ | Restroom Redoubt |
Day 15 | ✅ | ✅ | ⭐⭐ | Warehouse Woes |
Day 16 | ✅ | ✅ | ⭐⭐ | Reindeer Maze |
Day 17 | ✅ | ✅ | ⭐⭐ | Chronospatial Computer |
Day 18 | ✅ | ✅ | ⭐⭐ | RAM Run |
Day 19 | ✅ | ✅ | ⭐⭐ | Linen Layout |
Day 20 | ✅ | ✅ | ⭐⭐ | Race Condition |
Day 21 | ✅ | ✅ | ⭐⭐ | Keypad Conundrum |
Day 22 | ✅ | ✅ | ⭐⭐ | Monkey Market |
Day 23 | ✅ | ✅ | ⭐⭐ | LAN Party |
Day 24 | ✅ | ✅ | ⭐⭐ | Crossed Wires |
Day 25 | ✅ | - | ⭐ | Code Chronicle |
Total Stars: 50/50 ⭐
Advent-Of-Code2024/
├── Day1/
│ ├── part1.py # Solution for part 1
│ └── part2.py # Solution for part 2
├── Day2/
│ ├── part1.py
│ └── part2.py
...
├── Day25/
│ └── part1.py # Final challenge (no part 2)
└── README.md # This file
- Python 3.7 or higher
- Basic understanding of Python programming
-
Clone the repository:
git clone https://github.com/abdullahxyz85/Advent-Of-Code2024.git cd Advent-Of-Code2024
-
Navigate to any day:
cd Day1
-
Run the solution:
python part1.py python part2.py
Most solutions expect input files to be in the same directory or specified path. Make sure to:
- Download your personal input from Advent of Code
- Place it in the appropriate directory (usually as
input.txt
) - Update file paths in the code if necessary
- Day 11 - Plutonian Pebbles: Dynamic programming and memoization for exponential growth problems
- Day 16 - Reindeer Maze: Pathfinding with Dijkstra's algorithm considering direction changes
- Day 17 - Chronospatial Computer: Virtual machine implementation and reverse engineering
- Day 24 - Crossed Wires: Logic gate simulation and boolean algebra
- Day 25 - Code Chronicle: Pattern matching and lock/key fitting algorithms
- Graph Algorithms: BFS, DFS, Dijkstra's algorithm
- Dynamic Programming: Memoization, bottom-up approaches
- String Processing: Regex, parsing, pattern matching
- Mathematical: Number theory, modular arithmetic, combinatorics
- Data Structures: Sets, dictionaries, priority queues, grids
- Solutions prioritize clarity and correctness over optimization
- Most solutions run in under a few seconds
- Some challenges may require optimization for large inputs
- Comments explain the approach and key insights
- Read and understand the problem thoroughly
- Identify patterns and edge cases
- Choose appropriate data structures and algorithms
- Implement incrementally with testing
- Optimize if necessary for performance
This repository contains my personal solutions. Feel free to:
- Study the code for learning purposes
- Suggest improvements or alternative approaches
- Share your own solutions and insights
This project is open source and available under the MIT License.
- Completion Rate: 98% (49/50 stars)
- Languages Used: Python
- Total Lines of Code: ~2000+
- Favorite Challenge: Day 17 - Chronospatial Computer
If you have any questions or want to discuss solutions:
- GitHub: @abdullahxyz85
- Advent of Code Profile: View Profile
Happy Coding! 🎄✨