diff options
author | Yigit Sever | 2022-12-01 17:43:04 +0300 |
---|---|---|
committer | Yigit Sever | 2022-12-01 17:43:04 +0300 |
commit | 5055786d3db80e45a5c3f128f41866ea78865c45 (patch) | |
tree | 19f8df50614798285ffdd8556e28bb7840c02c34 /2022/day1/part2 | |
parent | 00731fd04963873b99e8a1d2571f27c87d8b7658 (diff) | |
download | aoc-5055786d3db80e45a5c3f128f41866ea78865c45.tar.gz aoc-5055786d3db80e45a5c3f128f41866ea78865c45.tar.bz2 aoc-5055786d3db80e45a5c3f128f41866ea78865c45.zip |
2022, day1: done
Diffstat (limited to '2022/day1/part2')
-rw-r--r-- | 2022/day1/part2/Cargo.toml | 9 | ||||
-rw-r--r-- | 2022/day1/part2/example | 14 | ||||
-rw-r--r-- | 2022/day1/part2/src/main.rs | 21 |
3 files changed, 44 insertions, 0 deletions
diff --git a/2022/day1/part2/Cargo.toml b/2022/day1/part2/Cargo.toml new file mode 100644 index 0000000..69fa504 --- /dev/null +++ b/2022/day1/part2/Cargo.toml | |||
@@ -0,0 +1,9 @@ | |||
1 | [package] | ||
2 | name = "part2" | ||
3 | version = "0.1.0" | ||
4 | edition = "2021" | ||
5 | |||
6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | ||
7 | |||
8 | [dependencies] | ||
9 | itertools = "0.10.5" | ||
diff --git a/2022/day1/part2/example b/2022/day1/part2/example new file mode 100644 index 0000000..2094f91 --- /dev/null +++ b/2022/day1/part2/example | |||
@@ -0,0 +1,14 @@ | |||
1 | 1000 | ||
2 | 2000 | ||
3 | 3000 | ||
4 | |||
5 | 4000 | ||
6 | |||
7 | 5000 | ||
8 | 6000 | ||
9 | |||
10 | 7000 | ||
11 | 8000 | ||
12 | 9000 | ||
13 | |||
14 | 10000 | ||
diff --git a/2022/day1/part2/src/main.rs b/2022/day1/part2/src/main.rs new file mode 100644 index 0000000..2a65d1a --- /dev/null +++ b/2022/day1/part2/src/main.rs | |||
@@ -0,0 +1,21 @@ | |||
1 | use itertools::Itertools; | ||
2 | |||
3 | fn main() { | ||
4 | let input: String = include_str!("../../input").to_string(); | ||
5 | let mut calories: Vec<usize> = Vec::new(); | ||
6 | |||
7 | for (key, group) in &input.lines().group_by(|line| *line != "") { | ||
8 | if key { | ||
9 | calories.push(group.into_iter().map(|i| i.parse::<usize>().unwrap()).sum()); | ||
10 | } | ||
11 | } | ||
12 | |||
13 | println!( | ||
14 | "{}", | ||
15 | calories | ||
16 | .iter() | ||
17 | .sorted_by(|a, b| Ord::cmp(b, a)) | ||
18 | .take(3) | ||
19 | .sum::<usize>() | ||
20 | ); | ||
21 | } | ||