AoC_2022/src/day01.rs

20 lines
589 B
Rust

use std::cmp::Reverse;
use aoc_runner_derive::{aoc, aoc_generator};
#[aoc_generator(day1)]
pub fn input_generator(input: &str) -> Vec<usize> {
input.split("\n\n").map(|chunk| chunk.lines().map(|line| line.trim().parse::<usize>().unwrap()).sum()).collect()
}
#[aoc(day1, part1)]
pub fn solve_part1(input: &[usize]) -> usize {
input.iter().max().copied().unwrap_or(0)
}
#[aoc(day1, part2)]
pub fn solve_part2(input: &[usize]) -> usize {
let mut scores: Vec<usize> = input.to_vec();
scores.sort_by_key(|v| Reverse(*v));
scores.iter().take(3).sum()
}