simplify code

This commit is contained in:
Adam Jeniski 2022-12-02 13:40:31 -05:00
parent b25fcbc1a7
commit 213fcdc1d4

View File

@ -2,41 +2,14 @@ advent_of_code_macro::solve_problem!(
day 1,
Input Vec<Vec<i32>>,
parse |input: &str| {
let lines = input.split('\n');
let mut output = vec![];
let mut curr_elf = vec![];
for line in lines {
if line.is_empty() {
output.push(curr_elf);
curr_elf = vec![];
} else {
curr_elf.push(line.parse().unwrap())
}
}
output
input.split("\n\n").map(|lines| lines.lines().map(|line| line.parse().unwrap()).collect()).collect()
},
part one |data: Input| {
data.iter().map(|cals| cals.iter().sum()).max().unwrap()
},
part two |data: Input| {
use std::mem::swap;
let cals = data.iter().map(|cals| cals.iter().sum()).fold(
(-1, -1, -1),
|(mut first, mut second, mut third), mut curr: i32| {
if curr > first {
swap(&mut first, &mut curr);
}
if curr > second {
swap(&mut second, &mut curr);
}
if curr > third {
swap(&mut third, &mut curr);
}
(first, second, third)
},
);
cals.0 + cals.1 + cals.2
let mut cals: std::collections::BinaryHeap<i32> = data.iter().map(|cals| cals.iter().sum()).collect();
cals.pop().unwrap() + cals.pop().unwrap() + cals.pop().unwrap()
},
sample tests [24_000, 45_000],
star tests [68_923, 200_044]