diff options
| author | omagdy7 <omar.professional8777@gmail.com> | 2022-12-04 19:43:09 +0200 |
|---|---|---|
| committer | omagdy7 <omar.professional8777@gmail.com> | 2022-12-04 19:43:09 +0200 |
| commit | 95682a3ae02c46eaba003b082be4960e8e427113 (patch) | |
| tree | 2cbf91b852edfbf614d3c36ab64e6a81c0510895 /2022/Rust/src | |
| parent | 616af4d6944d9c6436e36ab1ef38238819ccea64 (diff) | |
| download | aoc-95682a3ae02c46eaba003b082be4960e8e427113.tar.xz aoc-95682a3ae02c46eaba003b082be4960e8e427113.zip | |
Day1 done in rust
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)); +} |
