From 1531239f2005dfd8bc8536579eae6ae8baf790c1 Mon Sep 17 00:00:00 2001 From: nihilazo Date: Thu, 1 Dec 2022 15:13:03 +0000 Subject: [PATCH] day 1 solved --- src/bin/01.rs | 63 +++++++++++++++++++++++++++++++++++++++++++++ src/examples/01.txt | 14 ++++++++++ 2 files changed, 77 insertions(+) create mode 100644 src/bin/01.rs create mode 100644 src/examples/01.txt diff --git a/src/bin/01.rs b/src/bin/01.rs new file mode 100644 index 0000000..2c13fe5 --- /dev/null +++ b/src/bin/01.rs @@ -0,0 +1,63 @@ +pub fn part_one(input: &str) -> Option { + let inlines = input.split("\n"); + let mut count: u32 = 0; + let mut elves: Vec = vec![]; + for l in inlines { + match l { + "" => { elves.push(count); count = 0}, + _ => { count += l.parse::().unwrap() } + } + } + + let mut largest = 0; + + for e in elves { + if e > largest { + largest = e; + } + } + + Some(largest) +} + +pub fn part_two(input: &str) -> Option { + let inlines = input.split("\n"); + let mut count: u32 = 0; + let mut elves: Vec = vec![]; + for l in inlines { + match l { + "" => { elves.push(count); count = 0}, + _ => { count += l.parse::().unwrap() } + } + } + + elves.sort(); + elves.reverse(); + elves.truncate(3); + + Some(elves.iter().sum::()) + +} + +fn main() { + let input = &advent_of_code::read_file("inputs", 1); + advent_of_code::solve!(1, part_one, input); + advent_of_code::solve!(2, part_two, input); +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_part_one() { + let input = advent_of_code::read_file("examples", 1); + assert_eq!(part_one(&input), Some(24000)); + } + + #[test] + fn test_part_two() { + let input = advent_of_code::read_file("examples", 1); + assert_eq!(part_two(&input), None); + } +} diff --git a/src/examples/01.txt b/src/examples/01.txt new file mode 100644 index 0000000..444e241 --- /dev/null +++ b/src/examples/01.txt @@ -0,0 +1,14 @@ +1000 +2000 +3000 + +4000 + +5000 +6000 + +7000 +8000 +9000 + +10000 \ No newline at end of file