summaryrefslogtreecommitdiff
path: root/2022/Rust/src/day1.rs
blob: 7c5c4133126ded37b4bbbbc17cdbe46f8d72331f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
fn solve_part_one(data: &str) -> u32 {
    data.split("\n\n")
        .collect::<Vec<&str>>()
        .iter()
        .map(|line| {
            line.split("\n")
                .flat_map(|x| x.parse::<u32>()).sum::<u32>()
        })
        .max().unwrap()
}

fn solve_part_two(data: &str) -> u32 {
    let mut vec = data.split("\n\n")
        .collect::<Vec<&str>>()
        .iter()
        .map(|line| {
            line.split("\n")
                .flat_map(|x| x.parse::<u32>()).sum::<u32>()
        }).collect::<Vec<u32>>();
    vec.sort_by(|a, b| b.cmp(a));
    vec.iter().take(3).sum()
}

fn main() {
    let data = include_str!("../data/day1.prod");
    println!("{:?}", solve_part_one(data));
    println!("{:?}", solve_part_two(data));
}