This repository contains my solutions to the Advent of Code challenges implemented in the Clojure programming language. Advent of Code is an annual event featuring daily coding challenges in December, each with two parts, released one per day leading up to Christmas.
Advent of Code provides a series of programming puzzles designed to challenge participants' problem-solving skills in areas such as algorithms, data structures, and logic. The challenges vary in difficulty and often have a festive holiday theme.
Each day's challenge is solved in its own Clojure source file within the "src" directory. Solutions are organized by day and part.
.
├── src
│ ├── day1
│ │ ├── part1.clj
│ │ └── part2.clj
│ ├── day2
│ │ ├── part1.clj
│ │ └── part2.clj
│ └── ...
└── ...
To run a solution for a specific day and part, you'll need to have Clojure installed on your system. You can execute each solution file using the Clojure command-line tools or an integrated development environment (IDE) such as Cursive or Emacs with CIDER.
clj -M src/day1/part1.clj
Replace src/day1/part1.clj
with the path to the solution file you want to run.
To run all tests, use
clj -X:test
Please note that while the solutions provided here are my own work, the input data used to test these solutions has been engineered using AI and prompt engineering techniques. This ensures that I am not sharing any copyrighted material from the original Advent of Code challenges. Feel free to try out the solutions with your own input data.
Contributions in the form of improvements to existing solutions or new solutions are welcome! If you have an alternative approach, a more efficient solution, or an enhancement to the existing code, feel free to submit a pull request.
These solutions are provided for educational purposes and personal enjoyment. While they aim to be correct and efficient, they may not always represent the most optimal solution.
I'd like to express my gratitude to the creators of Advent of Code for designing such engaging challenges and fostering a vibrant programming community.