An open API service indexing awesome lists of open source software.

https://github.com/matteo-campana/advent-of-code

Welcome to Advent of Code 2024! 🎄✨ This repository contains solutions, notes, and resources for the Advent of Code 2024 challenge. Whether you're here to collaborate, compare solutions, or just curious about my approach, you're in the right place!
https://github.com/matteo-campana/advent-of-code

advent-of-code advent-of-code-2024 advent-of-code-2024-java algorithm-challenges algorithms algorithms-and-data-structures java maven

Last synced: 3 months ago
JSON representation

Welcome to Advent of Code 2024! 🎄✨ This repository contains solutions, notes, and resources for the Advent of Code 2024 challenge. Whether you're here to collaborate, compare solutions, or just curious about my approach, you're in the right place!

Awesome Lists containing this project

README

          

# Advent of Code 2024

Welcome to **Advent of Code 2024**! 🎄✨ This repository contains solutions, notes, and resources for the Advent of Code 2024 challenge. Whether you're here to collaborate, compare solutions, or just curious about my approach, you're in the right place!

---

## 🌟 What is Advent of Code?

[Advent of Code](https://adventofcode.com/) is an annual event featuring daily programming puzzles during December. Each day from December 1st to December 25th, a new puzzle is released at midnight EST. These puzzles test your problem-solving skills and programming abilities across a wide range of topics, including algorithms, data structures, and more.

---

## 🗂️ Repository Structure

```plaintext
.
├── puzzles/
│ ├── day1/
│ │ ├── Solution.java
│ │ ├── README.md
│ ├── day2/
│ │ ├── Solution.java
│ │ ├── README.md
├── utils/
│ ├── Utils.java # Common helper functions used across days
├── resources/
│ ├── day1/
│ │ ├── input.txt
│ ├── day2/
│ │ ├── input.txt
├── LICENSE # Repository license
└── README.md # This file
```

### Files and Folders
- **`dayXX/`**: Each folder represents one day of the challenge, containing the input, solution, and an explanation of the approach.
- **`utils/`**: Shared utilities and helper functions.
- **`resources/`**: Input files for each day's puzzle.
- **`LICENSE`**: Licensing information for this repository.
- **`README.md`**: Overview of the repository (this file).

---

## 🚀 Getting Started

### Prerequisites

- Java 23 or later
- Basic understanding of programming concepts and algorithms

### Running Solutions

1. Clone the repository:
```bash
git clone https://github.com/matteo-campana/advent-of-code.git
cd advent-of-code-2024
```

2. Navigate to the day's folder:
```bash
cd puzzles/day1
```

3. Compile and run the solution:
```bash
javac Solution.java
java Solution
```
---

## 🧑‍💻 How to Contribute

1. Fork the repository and create a new branch.
2. Add your solution or improvement.
3. Create a pull request and include a brief explanation of your changes.

---

## 📚 Resources

- [Official Advent of Code Website](https://adventofcode.com/)

---

## 💡 Tips for Solving Puzzles

1. Read the problem statement carefully.
2. Break the problem into smaller, manageable steps.
3. Write tests to validate your solution with sample inputs.
4. Optimize only after getting a correct solution.

---

## 🏷️ License

This repository is licensed under the MIT License. See the [LICENSE](./LICENSE) file for details.

---

## 🙌 Acknowledgments

- Thanks to [Eric Wastl](https://twitter.com/ericwastl) for creating and maintaining Advent of Code.
- Thanks to the Advent of Code community for their support and collaboration.

---

Good luck, and happy coding! 🎅🎁