From 341f1d3f44b034c9fb6102aaa7eb22fd42d502a8 Mon Sep 17 00:00:00 2001 From: Jens Meindertsma Date: Fri, 25 Apr 2025 11:38:39 +0200 Subject: [PATCH] Set up day 20 --- Cargo.lock | 7 +++++++ README.md | 2 +- puzzles/2015/2015-20/Cargo.toml | 6 ++++++ puzzles/2015/2015-20/input.txt | 1 + puzzles/2015/2015-20/src/lib.rs | 15 +++++++++++++++ puzzles/2015/2015-20/src/main.rs | 17 +++++++++++++++++ puzzles/2015/2015-20/src/part1.rs | 3 +++ 7 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 puzzles/2015/2015-20/Cargo.toml create mode 100644 puzzles/2015/2015-20/input.txt create mode 100644 puzzles/2015/2015-20/src/lib.rs create mode 100644 puzzles/2015/2015-20/src/main.rs create mode 100644 puzzles/2015/2015-20/src/part1.rs diff --git a/Cargo.lock b/Cargo.lock index 85a0ee2..d658ce6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -403,6 +403,13 @@ dependencies = [ "ornament", ] +[[package]] +name = "puzzle-2015-20" +version = "0.0.0" +dependencies = [ + "ornament", +] + [[package]] name = "puzzle-template" version = "0.0.0" diff --git a/README.md b/README.md index 31995d5..fb988b1 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Rust is kinda my thing, lol! | 17 | No Such Thing as Too Much | ❌ | ❌ | | 18 | Like a GIF For Your Yard | ❌ | ❌ | | 19 | Medicine for Rudolph | ❌ | ❌ | -| 20 | Infinite Elves and Infinite Houses | ❌ | ❌ | +| 20 | [Infinite Elves and Infinite Houses](puzzles/2015/2015-20/) | ❌ | ❌ | | 21 | RPG Simulator 20XX | ❌ | ❌ | | 22 | Wizard Simulator 20XX | ❌ | ❌ | | 23 | Opening the Turing Lock | ❌ | ❌ | diff --git a/puzzles/2015/2015-20/Cargo.toml b/puzzles/2015/2015-20/Cargo.toml new file mode 100644 index 0000000..ade843c --- /dev/null +++ b/puzzles/2015/2015-20/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "puzzle-2015-20" +edition = "2024" + +[dependencies] +ornament.workspace = true diff --git a/puzzles/2015/2015-20/input.txt b/puzzles/2015/2015-20/input.txt new file mode 100644 index 0000000..282bc62 --- /dev/null +++ b/puzzles/2015/2015-20/input.txt @@ -0,0 +1 @@ +33100000 diff --git a/puzzles/2015/2015-20/src/lib.rs b/puzzles/2015/2015-20/src/lib.rs new file mode 100644 index 0000000..bb564c2 --- /dev/null +++ b/puzzles/2015/2015-20/src/lib.rs @@ -0,0 +1,15 @@ +mod part1; + +pub use part1::part_1; + +#[cfg(test)] +mod tests { + const INPUT: &str = include_str!("../input.txt"); + + #[test] + fn part_1() { + use super::part_1; + + assert_eq!(part_1(INPUT), 776160); + } +} diff --git a/puzzles/2015/2015-20/src/main.rs b/puzzles/2015/2015-20/src/main.rs new file mode 100644 index 0000000..3ef61fe --- /dev/null +++ b/puzzles/2015/2015-20/src/main.rs @@ -0,0 +1,17 @@ +use ornament::{Puzzle, Solution}; +use puzzle_2015_20::part_1; + +fn main() { + Puzzle { + name: "Infinite Elves and Infinite Houses", + year: 2015, + day: 20, + part_1: |input| { + Solution::new(part_1, input, |answer| { + format!("{answer} is the lowest house number") + }) + }, + part_2: None, + } + .solve(include_str!("../input.txt")) +} diff --git a/puzzles/2015/2015-20/src/part1.rs b/puzzles/2015/2015-20/src/part1.rs new file mode 100644 index 0000000..4cd8583 --- /dev/null +++ b/puzzles/2015/2015-20/src/part1.rs @@ -0,0 +1,3 @@ +pub fn part_1(input: &str) -> usize { + todo!() +}