mirror of
https://github.com/RussellChamp/advent-of-code-2024.git
synced 2026-10-27 15:44:44 +00:00
day 1 pt 2
This commit is contained in:
1 parent
4ac4aa5100
commit
4cc13144f0
1 file changed
+21
-14
+21
-14
@@ -5,7 +5,7 @@ use std::io::{self, BufRead};
|
||||
use std::path::Path;
|
||||
use regex::Regex;
|
||||
|
||||
fn solve_part1() {
|
||||
fn solve() {
|
||||
println!("Day 01: Part 1");
|
||||
println!("GOAL: Find the total distance between the left list and the right list");
|
||||
println!("ANSWER: What is the total distance between your lists?");
|
||||
@@ -18,9 +18,8 @@ fn solve_part1() {
|
||||
for line in lines.flatten() {
|
||||
let vals: Vec<&str> = re_split.split(&line).collect();
|
||||
|
||||
// println!("{} and {}", vals[0], vals[1]);
|
||||
let a = vals[0].parse::<i32>().unwrap();
|
||||
let b = vals[1].parse::<i32>().unwrap();
|
||||
let a = vals[0].parse::<u32>().unwrap();
|
||||
let b = vals[1].parse::<u32>().unwrap();
|
||||
vec_a.push(a);
|
||||
vec_b.push(b);
|
||||
}
|
||||
@@ -30,21 +29,29 @@ fn solve_part1() {
|
||||
for i in 0..1000 {
|
||||
let diff = vec_a[i].abs_diff(vec_b[i]);
|
||||
result += diff;
|
||||
println!("Line {}: abs({} - {}) = {}", i+1, vec_a[i], vec_b[i], diff)
|
||||
// println!("Line {}: abs({} - {}) = {}", i+1, vec_a[i], vec_b[i], diff)
|
||||
}
|
||||
}
|
||||
println!("Total {result}");
|
||||
}
|
||||
println!("Total {result}");
|
||||
|
||||
fn solve_part2 () {
|
||||
println!("Day 01: Part 2");
|
||||
println!("GOAL: #GOAL2#");
|
||||
println!("ANSWER: #ANSWER2#");
|
||||
println!("Day 01: Part 2");
|
||||
println!("GOAL: Calculate a total similarity score by adding up each number in the left list after multiplying it by the number of times that number appears in the right list");
|
||||
println!("ANSWER: What is their similarity score?");
|
||||
|
||||
result = 0;
|
||||
for i in 0..1000 {
|
||||
let needle = vec_a[i];
|
||||
let found = vec_b.iter().filter(|&&b| b == needle).count() as u32;
|
||||
let similarity = found * needle;
|
||||
result += similarity;
|
||||
|
||||
println!("Line {}: {} found {} times = {}, total {}", i + 1, needle, found, similarity, result);
|
||||
}
|
||||
println!("Total {result}");
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
solve_part1()
|
||||
// solve_part2()
|
||||
solve()
|
||||
}
|
||||
|
||||
fn read_lines<P>(filename: P) -> io::Result<io::Lines<io::BufReader<File>>>
|
||||
|
||||
Reference in new issue
Block a user