refactored project structure
This commit is contained in:
25
src/day03/part03a.rs
Normal file
25
src/day03/part03a.rs
Normal 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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user