Skip to content

Latest commit

 

History

History
110 lines (74 loc) · 2.24 KB

README.md

File metadata and controls

110 lines (74 loc) · 2.24 KB

Advent of Code 2024

This repository contains solutions for the Advent of Code 2024 programming puzzles, implemented in Elixir.

AI Assistance

This project was developed with the assistance of AI tools:

  • Aider - AI coding assistant
  • Claude (Sonnet) - Anthropic's AI model for pair programming

The AI tools helped with:

  • Code structure and organization
  • Problem-solving approaches
  • Testing strategies
  • Documentation

Project Description

Advent of Code is an annual set of Christmas-themed programming challenges that follow an advent calendar. Each day, a new two-part puzzle is released. This project provides solutions to these puzzles using Elixir, demonstrating functional programming concepts and Elixir-specific features.

Technology Stack

  • Language: Elixir 1.17

Getting Started

Prerequisites

  • Elixir 1.17 or later
  • Erlang/OTP 24 or later

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/advent_code_2024.git
cd advent_code_2024
  1. Fetch dependencies:
mix deps.get
  1. Compile the project:
mix compile

Usage

Running Solutions

To run a specific day's solution:

# Run Day 1 solution
mix run -e "AdventCode2024.solve_day1() |> IO.inspect()"

# Run Day 1 Part 2 solution
mix run -e "AdventCode2024.solve_day1_part2() |> IO.inspect()"

Running Tests

To run all tests:

mix test

To run tests for a specific day:

mix test test/advent_code2024_test.exs

Project Structure

.
├── lib/
│   ├── advent_code2024.ex          # Main module
│   └── advent_code2024/
│       └── day1.ex                 # Day 1 solution
├── test/                           # Test files
└── day1/                           # Input files
    └── input.txt

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-solution)
  3. Commit your changes (git commit -am 'Add amazing solution')
  4. Push to the branch (git push origin feature/amazing-solution)
  5. Create a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.