day03: Make it solve part 2 instead
This commit is contained in:
parent
55038c87da
commit
6dfb583345
|
@ -15,13 +15,19 @@ fn main() -> Result<(), Box<dyn error::Error>> {
|
|||
let reader = BufReader::new(f);
|
||||
|
||||
let mut sum: u32 = 0;
|
||||
let mut group_items: HashSet<u32> = 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::<u32>();
|
||||
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);
|
||||
|
|
Loading…
Reference in New Issue