summaryrefslogtreecommitdiff
path: root/2022/Rust/src
diff options
context:
space:
mode:
authoromagdy7 <omar.professional8777@gmail.com>2022-12-04 19:43:09 +0200
committeromagdy7 <omar.professional8777@gmail.com>2022-12-04 19:43:09 +0200
commit95682a3ae02c46eaba003b082be4960e8e427113 (patch)
tree2cbf91b852edfbf614d3c36ab64e6a81c0510895 /2022/Rust/src
parent616af4d6944d9c6436e36ab1ef38238819ccea64 (diff)
downloadaoc-95682a3ae02c46eaba003b082be4960e8e427113.tar.xz
aoc-95682a3ae02c46eaba003b082be4960e8e427113.zip
Day1 done in rust
Diffstat (limited to '2022/Rust/src')
-rw-r--r--2022/Rust/src/day1.rs28
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));
+}