From e41e6c8bc72e3300a0fa137f198454341bc315b1 Mon Sep 17 00:00:00 2001 From: mathiasmagnusson Date: Fri, 9 Dec 2022 18:00:02 +0100 Subject: Add aoc --- aoc22/day1/src/main.rs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 aoc22/day1/src/main.rs (limited to 'aoc22/day1/src/main.rs') diff --git a/aoc22/day1/src/main.rs b/aoc22/day1/src/main.rs new file mode 100644 index 0000000..1754e1b --- /dev/null +++ b/aoc22/day1/src/main.rs @@ -0,0 +1,38 @@ +use std::collections::BinaryHeap; + +fn main() { + let input = lib::read_input(1); + + part1(&input); + part2(&input); +} + +fn part1(input: &str) { + let ans: usize = input + .split("\n\n") + .map(|elf| { + elf.split("\n") + .flat_map(|item| item.parse::().ok()) + .sum() + }) + .max() + .unwrap(); + + println!("{}", ans); +} + +fn part2(input: &str) { + let mut heap: BinaryHeap = input + .split("\n\n") + .map(|elf| { + elf.split("\n") + .flat_map(|item| item.parse::().ok()) + .sum() + }) + .collect(); + + println!( + "{}", + heap.pop().unwrap() + heap.pop().unwrap() + heap.pop().unwrap() + ); +} -- cgit v1.2.3