Skip to content

abdullahxyz85/Advent-Of-Code2024

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎄 Advent of Code 2024 Solutions

Welcome to my solutions for Advent of Code 2024! This repository contains my Python implementations for all 25 days of coding challenges.

📊 Progress Tracker

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

🏗️ Repository Structure

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

🚀 Getting Started

Prerequisites

  • Python 3.7 or higher
  • Basic understanding of Python programming

Running the Solutions

  1. Clone the repository:

    git clone https://github.com/abdullahxyz85/Advent-Of-Code2024.git
    cd Advent-Of-Code2024
  2. Navigate to any day:

    cd Day1
  3. Run the solution:

    python part1.py
    python part2.py

Input Files

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

🧩 Solution Highlights

Interesting Challenges

  • 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

Algorithms Used

  • 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

📈 Performance Notes

  • 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

🎯 Problem-Solving Approach

  1. Read and understand the problem thoroughly
  2. Identify patterns and edge cases
  3. Choose appropriate data structures and algorithms
  4. Implement incrementally with testing
  5. Optimize if necessary for performance

🤝 Contributing

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

📚 Resources

📄 License

This project is open source and available under the MIT License.

🏆 Achievements

  • Completion Rate: 98% (49/50 stars)
  • Languages Used: Python
  • Total Lines of Code: ~2000+
  • Favorite Challenge: Day 17 - Chronospatial Computer

📞 Contact

If you have any questions or want to discuss solutions:

Happy Coding! 🎄✨

About

This Repo contain all solutions of Advent Of Code

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages