No description
Find a file
2024-12-01 16:39:46 +01:00
day1 refactor: Enhance README with comprehensive project documentation 2024-12-01 16:38:44 +01:00
lib chore: format and renaming 2024-12-01 16:29:12 +01:00
test chore: format and renaming 2024-12-01 16:29:12 +01:00
.formatter.exs project scaffold 2024-12-01 09:46:47 +01:00
.gitignore project scaffold 2024-12-01 09:46:47 +01:00
mix.exs project scaffold 2024-12-01 09:46:47 +01:00
README.md docs: Update README.md formatting and improve readability 2024-12-01 16:39:46 +01:00

Advent of Code 2024

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

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
  • Build Tool: Mix
  • Testing Framework: ExUnit

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.