day 1 part 2

This commit is contained in:
Crizomb 2024-12-07 17:18:33 +01:00
parent d72a5b20fc
commit 4e8ad5a56d
2 changed files with 19 additions and 1 deletions

View file

@ -1,6 +1,7 @@
use std::env; use std::env;
use std::fs; use std::fs;
use std::path::Iter; use std::path::Iter;
use std::collections::HashMap;
pub fn solve_day_1_2() { pub fn solve_day_1_2() {
// --snip-- // --snip--
@ -18,5 +19,20 @@ pub fn solve_day_1_2() {
) )
}).unzip(); }).unzip();
l_list.sort(); // let mut similarity = 0;
let mut r_count_map : HashMap<i32, i32> = 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}");
} }

View file

@ -2,8 +2,10 @@ mod day_1_1;
mod day_1_2; mod day_1_2;
use crate::day_1_1::solve_day_1_1; use crate::day_1_1::solve_day_1_1;
use crate::day_1_2::solve_day_1_2;
fn main() { fn main() {
println!("Hello, world!"); println!("Hello, world!");
// solve_day_1_1(); // solve_day_1_1();
solve_day_1_2();
} }