diff options
Diffstat (limited to '2022/Rust/src')
| -rw-r--r-- | 2022/Rust/src/day1.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/2022/Rust/src/day1.rs b/2022/Rust/src/day1.rs index e69de29..7c5c413 100644 --- a/2022/Rust/src/day1.rs +++ b/2022/Rust/src/day1.rs @@ -0,0 +1,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)); +} |
