refactored project structure

This commit is contained in:
2025-12-09 20:11:49 +01:00
parent 87bacd3b4c
commit 7928c2334f
69 changed files with 783 additions and 354 deletions

25
src/day03/part03a.rs Normal file
View File

@@ -0,0 +1,25 @@
use iter_first_max::IterFirstMaxExt;
pub fn solve(puzzle: String) -> u64 {
let mut solution: u64 = 0;
puzzle.lines().for_each(|battery_bank| {
let batteries = battery_bank
.chars()
.map(|c| c as u8 - 0x30)
.collect::<Vec<u8>>();
let (i, biggest_battery) = batteries
.iter()
.enumerate()
.first_max_by_key(|(_, v)| *v)
.unwrap();
solution += if i < battery_bank.len() - 1 {
10 * biggest_battery + batteries[i + 1..].iter().max().unwrap()
} else {
10 * batteries[..i].iter().max().unwrap() + biggest_battery
} as u64;
});
solution
}