diff --git a/src/day_1_2.rs b/src/day_1_2.rs index 8145b88..6a7edf6 100644 --- a/src/day_1_2.rs +++ b/src/day_1_2.rs @@ -1,6 +1,7 @@ use std::env; use std::fs; use std::path::Iter; +use std::collections::HashMap; pub fn solve_day_1_2() { // --snip-- @@ -18,5 +19,20 @@ pub fn solve_day_1_2() { ) }).unzip(); - l_list.sort(); + // let mut similarity = 0; + let mut r_count_map : HashMap = r_list.iter() + .fold(HashMap::new(), |mut acc, x| { + *acc.entry(*x).or_insert(0) += 1; + acc + }); + + let similarity = l_list.iter().fold(0, |mut acc, x| { + acc += x * *r_count_map.entry(*x).or_insert(0); + acc + }); + + println!("{similarity}"); + + + } \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 5047355..581f8e2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,8 +2,10 @@ mod day_1_1; mod day_1_2; use crate::day_1_1::solve_day_1_1; +use crate::day_1_2::solve_day_1_2; fn main() { println!("Hello, world!"); // solve_day_1_1(); + solve_day_1_2(); }