Skip to content

juliuspleunes4/AdventOfCode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

26 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ„ Advent of Code 2025

Welcome to my Advent of Code 2025 journey! This repository contains my solutions to the daily programming puzzles, implemented entirely in Rust.

πŸ¦€ About This Project

This is my first ever project using Rust, so this repository serves a dual purpose:

  • Learning Rust: Getting hands-on experience with Rust's syntax and ecosystem
  • Solving Puzzles: Tackling the creative and challenging problems that Advent of Code presents

Expect to see my code evolve as I learn more about Rust patterns and best practices throughout December!

πŸ“ Project Structure

.
β”œβ”€β”€ day01/
β”‚   β”œβ”€β”€ puzzle/
β”‚   β”‚   β”œβ”€β”€ puzzle.txt
β”‚   β”‚   └── puzzle_input.txt
β”‚   β”œβ”€β”€ part1.rs
β”‚   └── part2.rs
β”œβ”€β”€ day02/
β”‚   └── ...
β”œβ”€β”€ .gitignore
β”œβ”€β”€ .gitattributes
└── README.md

Each day's solution is organized in its own directory with:

  • puzzle/ - Contains the puzzle description and input data
  • part1.rs - Solution for Part 1
  • part2.rs - Solution for Part 2

πŸš€ Getting Started

Prerequisites

  • Rust (latest stable version)

Running Solutions

# Compile and run a specific day's solution
cd day01
rustc part1.rs && ./part1
rustc part2.rs && ./part2

πŸ“… Progress

Day Part 1 Part 2 Notes
Day 1 βœ… βœ… Secret Entrance - Dial rotations and zero crossings
Day 2 βœ… βœ… Gift Shop - Finding repeating digit patterns
Day 3 βœ… βœ… Lobby - Battery joltage optimization with subsequences
Day 4 βœ… βœ… Printing Department - Grid neighbor analysis and iterative removal
Day 5 βœ… βœ… Cafeteria - Range checking and merging overlapping intervals
Day 6 βœ… βœ… Trash Compactor - Cephalopod math with LTR and RTL column parsing
Day 7 βœ… βœ… Laboratories - Tachyon beam splitting and path counting with memoization
Day 8 βœ… βœ… Playground - Minimum spanning tree with Union-Find for 3D junction boxes
Day 9 βœ… βœ… Movie Theater - Largest rectangle with polygon containment validation
Day 10 βœ… βœ… Machine Room - Binary toggles (P1) and integer LP with RREF optimization (P2)
Day 11 βœ… βœ… Reactor - Graph path counting with DFS and memoization
Day 12 βœ… ⬜ Christmas Tree Farm - Polyomino packing with backtracking (no Part 2)

Legend: βœ… Complete | ⬜ Not Started | 🚧 In Progress

πŸ’‘ Learning Goals

  • Understand Rust's ownership and borrowing system
  • Master pattern matching and error handling
  • Work with Rust's iterator patterns
  • Explore common crates and libraries
  • Learn about performance optimization in Rust

🀝 Suggestions?

This is a personal learning project, but I'm open to feedback and suggestions! If you spot something that could be improved or written more idiomatically, feel free to open an issue or reach out.

πŸ“š Resources

⭐ Acknowledgments

Thanks to Eric Wastl for creating Advent of Code and providing such an engaging way to learn and practice programming!


πŸŽ…πŸŽ„