From d08a4e0e4edb4ba7ee470b3b9f54e182fb28491b Mon Sep 17 00:00:00 2001 From: Bert Peters Date: Thu, 2 Dec 2021 18:50:26 +0100 Subject: [PATCH] Merge day 1 solutions --- 2021/src/day01.rs | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/2021/src/day01.rs b/2021/src/day01.rs index 1c3acd1..0f32150 100644 --- a/2021/src/day01.rs +++ b/2021/src/day01.rs @@ -2,28 +2,22 @@ use std::io::Read; use crate::common::LineParser; -fn read_input(input: &mut dyn Read) -> Vec { - LineParser::new(input).collect() +fn part_generic(input: &mut dyn Read, window: usize) -> String { + let numbers: Vec = LineParser::new(input).collect(); + + numbers + .windows(window) + .filter(|w| w.last() > w.first()) + .count() + .to_string() } pub fn part1(input: &mut dyn Read) -> String { - let numbers = read_input(input); - - numbers - .windows(2) - .filter(|w| w[1] > w[0]) - .count() - .to_string() + part_generic(input, 2) } pub fn part2(input: &mut dyn Read) -> String { - let numbers = read_input(input); - - numbers - .windows(4) - .filter(|w| w[3] > w[0]) - .count() - .to_string() + part_generic(input, 4) } #[cfg(test)]