Added Day 6 Part 2

This commit is contained in:
2025-12-06 23:58:33 -06:00
parent 8998f2bd64
commit 339b41d283
2 changed files with 44 additions and 5 deletions

View File

@@ -1,4 +1,5 @@
use std::{fs::File, io::Read};
use core::num;
use std::{fs::File, io::Read, iter::Rev, str::Chars};
pub fn part_1(file:&str) -> u64 {
let mut directory = "/home/jason/Programming/Rust/aoc2025/src/day6/".to_owned();
@@ -46,6 +47,7 @@ pub fn part_2(file:&str) -> u64 {
handle.read_to_string(&mut file).unwrap();
let mut file_iter = file.lines().rev();
let mut input_lines: Vec<Chars<'_>> = Vec::new();
let mut problems: Vec<Problem> = Vec::new();
for elem in file_iter.next().unwrap().split_whitespace() {
@@ -59,12 +61,41 @@ pub fn part_2(file:&str) -> u64 {
}
for lines in file_iter {
for (pos, num) in lines.split_whitespace().enumerate() {
let value = num.parse::<u64>().unwrap();
problems[pos].numbers.push(value);
input_lines.push(lines.chars());
}
'primary: for prob in problems.iter_mut() {
'outer: loop {
let mut temp_num = String::new();
//println!("");
for digit_iter in input_lines.iter_mut() {
let temp_char = digit_iter.next();
//println!("{:?}", temp_char);
let temp_digit = match temp_char {
Some(d) => if !d.is_whitespace() {
d
} else {continue},
None => break 'outer
};
temp_num.push(temp_digit);
}
let reversed = temp_num.chars().rev().collect::<String>();
let parsed = reversed.parse::<u64>();
//println!("{:?}", parsed);
let number = match parsed {
Ok(num) => num,
Err(_) => continue 'primary,
};
prob.numbers.push(number);
}
}
//println!("{:?}", problems);
let solution = problems.iter().fold(0, |acc, x| {
let n = match x.operator {
Operator::Add => x.numbers.iter().sum::<u64>(),
@@ -93,7 +124,13 @@ mod tests {
use super::*;
#[test]
fn test() {
fn test_part_one() {
assert_eq!(part_1("test.txt"), 4277556);
}
#[test]
fn test_part_two() {
assert_eq!(part_2("test.txt"), 3263827)
}
}

View File

@@ -3,4 +3,6 @@ mod day6;
fn main() {
let d6p1 = day6::part_1("input.txt");
println!("Day 6 Part 1 Solution: {}", d6p1);
let d6p2 = day6::part_2("input.txt");
println!("Day 6 Part 2 Solution: {}", d6p2);
}