From 6dfb583345ed78484b12259361eb252d64d677c3 Mon Sep 17 00:00:00 2001 From: MasterofJOKers Date: Fri, 16 Dec 2022 18:50:29 +0100 Subject: [PATCH] day03: Make it solve part 2 instead --- day03/src/main.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/day03/src/main.rs b/day03/src/main.rs index 9d98577..8fffb17 100644 --- a/day03/src/main.rs +++ b/day03/src/main.rs @@ -15,13 +15,19 @@ fn main() -> Result<(), Box> { let reader = BufReader::new(f); let mut sum: u32 = 0; + let mut group_items: HashSet = HashSet::new(); - for line in reader.lines() { + for (i, line) in reader.lines().enumerate() { let line = line?; - let (c1, c2) = line.split_at(line.len() / 2); - let c1_set = set_from_str(c1); - let c2_set = set_from_str(c2); - sum += c1_set.intersection(&c2_set).sum::(); + if group_items.is_empty() { + group_items = set_from_str(line.as_str()); + } else { + group_items = set_from_str(line.as_str()).intersection(&group_items).cloned().collect(); + } + if (i + 1) % 3 == 0 { + sum += group_items.iter().next().unwrap(); + group_items.drain(); + } } println!("{}", sum);