aboutsummaryrefslogtreecommitdiff
path: root/2022/rust/day01/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to '2022/rust/day01/src/main.rs')
-rw-r--r--2022/rust/day01/src/main.rs15
1 files changed, 9 insertions, 6 deletions
diff --git a/2022/rust/day01/src/main.rs b/2022/rust/day01/src/main.rs
index d8a6b9c..2b5a773 100644
--- a/2022/rust/day01/src/main.rs
+++ b/2022/rust/day01/src/main.rs
@@ -3,12 +3,15 @@ use std::fs;
fn main() {
let args = env::args().nth(1).unwrap();
- let mut input = fs::read_to_string(args).unwrap().trim().split("\n\n").map(|x| x.trim().split("\n")
- .map(|x| x.parse::<i32>().unwrap()).collect()).collect::<Vec<Vec<i32>>>().iter()
- .map(|x| x.iter().fold(0, |x,y| x + y)).collect::<Vec<i32>>();
+ let input = fs::read_to_string(args).unwrap().trim().split("\n\n")
+ .map(|x| x.trim().split("\n").map(|x| x.parse::<i32>().unwrap())
+ .collect()).collect::<Vec<Vec<i32>>>();
// println!("{:?}", input);
- println!("{}", input.iter().fold(0, |x,y| x.max(*y)));
- input.sort_by(|x,y| y.cmp(x));
- println!("{}", input[0] + input[1] + input[2]);
+ let mut elves = input.iter().map(|x| x.iter().fold(0, |x,y| x + y))
+ .collect::<Vec<i32>>();
+ println!("{}", elves.iter().fold(0, |x,y| x.max(*y)));
+
+ elves.sort_by(|x,y| y.cmp(x));
+ println!("{}", elves[0] + elves[1] + elves[2]);
}