From d3cd5d777e423ff3355ca860f782410d275bdfe7 Mon Sep 17 00:00:00 2001 From: Adrian Groh Date: Mon, 2 Dec 2024 10:25:24 +0100 Subject: [PATCH] Replace for loops --- day2/src/main.rs | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/day2/src/main.rs b/day2/src/main.rs index 8c94b18..add492f 100644 --- a/day2/src/main.rs +++ b/day2/src/main.rs @@ -19,29 +19,21 @@ fn is_safe(report: &[u32]) -> bool { } fn part1(parsed_input: &[Vec]) -> u32 { - parsed_input - .iter() - .filter(|report| is_safe(report)) - .count() as u32 + parsed_input.iter().filter(|report| is_safe(report)).count() as u32 } fn part2(parsed_input: &[Vec]) -> u32 { - let mut res = 0; - for report in parsed_input { - if is_safe(report) { - res += 1; - continue; - } - for idx in 0..report.len() { - let mut modified_report = report.clone(); - modified_report.remove(idx); - if is_safe(&modified_report) { - res += 1; - break; - } - } - } - res + parsed_input + .iter() + .filter(|report| { + is_safe(report) + || (0..report.len()).any(|idx| { + let mut modified_report = (*report).clone(); + modified_report.remove(idx); + is_safe(&modified_report) + }) + }) + .count() as u32 } fn main() {