dedupe and improve

This commit is contained in:
Max Bradbury 2022-12-02 00:24:50 +00:00
parent 1d58f1e24c
commit bc0ba67c16
1 changed files with 10 additions and 18 deletions

View File

@ -1,27 +1,19 @@
fn elf_calorie_counts(input: &String) -> Vec<u64> {
input.split("\n\n").map(|elf| {
elf.split_whitespace().map(|meal| meal.parse().unwrap_or(0)).sum()
}).collect()
}
pub fn part_1(input: &String) -> u64 {
let elves: Vec<&str> = input.split("\n\n").collect();
let mut elf_calorie_counts= elf_calorie_counts(input);
let mut highest_calorie_count: u64 = 0;
elf_calorie_counts.sort_unstable();
for meals in elves.iter() {
let mut elf_calorie_count= 0;
for meal in meals.split_whitespace() {
elf_calorie_count += meal.parse().unwrap_or(0);
}
if elf_calorie_count > highest_calorie_count {
highest_calorie_count = elf_calorie_count;
}
}
highest_calorie_count
elf_calorie_counts.pop().unwrap()
}
pub fn part_2(input: &String) -> u64 {
let mut elf_calorie_counts: Vec<u64> = input.split("\n\n").map(|elf| {
elf.split_whitespace().map(|meal| meal.parse().unwrap_or(0)).sum()
}).collect();
let mut elf_calorie_counts= elf_calorie_counts(input);
elf_calorie_counts.sort_unstable();
elf_calorie_counts.reverse();