From 78b8b63233a048398d296603ad86b8c19e60349f Mon Sep 17 00:00:00 2001 From: Joey Pollack Date: Tue, 3 Dec 2024 15:23:24 -0500 Subject: [PATCH] Day1 First Case Solved --- crates/day_1/src/day_1.rs | 29 +++++++++++++++++++++++------ src/main.rs | 16 +++------------- 2 files changed, 26 insertions(+), 19 deletions(-) diff --git a/crates/day_1/src/day_1.rs b/crates/day_1/src/day_1.rs index 0003dbd..a29f3bb 100644 --- a/crates/day_1/src/day_1.rs +++ b/crates/day_1/src/day_1.rs @@ -8,13 +8,15 @@ pub struct Day1 do_debug_prints: bool, data_a: Vec, data_b: Vec, + distances: Vec, + pub final_result: i32, } impl Day1 { pub fn new() -> Day1 { - Day1 { run_mode: RunMode::TestCase, do_debug_prints: false, data_a: vec![], data_b: vec![] } + Day1 { run_mode: RunMode::TestCase, do_debug_prints: false, data_a: vec![], data_b: vec![], distances: vec![], final_result: 0 } } } @@ -64,18 +66,33 @@ impl Solver for Day1 } } + self.data_a.sort(); + self.data_b.sort(); + if self.do_debug_prints { - println!("Input data processed:\n\tdata_a: {:#?}\n\tdata_b: {:#?}", self.data_a, self.data_b); + println!("Day1 Debug: Input data processed:\n\tdata_a: {:#?}\n\tdata_b: {:#?}", self.data_a, self.data_b); } } fn solve(self: &mut Self) -> String { - // TODO: Day1::solve - println!("Day 1 solve not implemented yet."); - "NO RESULTS".to_string() + // iterate the lists and find the differences + for i in 0..self.data_a.len() + { + self.distances.push((self.data_a[i] - self.data_b[i]).abs()); + } + + if self.do_debug_prints + { + println!("Day1 Debug: distances: {:#?}", self.distances); + } + + // iterate the list of differences and sum them + self.final_result = self.distances.iter().sum::(); + + self.final_result.to_string() } - + } \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index eb09152..109c15f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,23 +1,13 @@ -use std::env; use day_1::day_1::Day1; use solver_base::solver_base::{Solver, RunMode}; fn main() { - let args: Vec = env::args().collect(); - - for (i,arg) in args.iter().enumerate() - { - println!("Arg {}: {}", i + 1, arg); - } - - println!("Hello, world!"); let mut day_1 = Day1::new(); - //day_1.print_test(); - Day1::print_test(); - day_1.init(RunMode::TestCase, true); - day_1.solve(); + day_1.init(RunMode::FirstCase, false); + let day1_result = day_1.solve(); + println!("Day1 Final Result: {}", day1_result); }