From 2c3840f65a0bfe39bf27f89c0892df600f00f01c Mon Sep 17 00:00:00 2001 From: Candygoblen123 Date: Mon, 11 Dec 2023 09:52:06 -0500 Subject: [PATCH] day9 part2 --- day09/src/main.rs | 44 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/day09/src/main.rs b/day09/src/main.rs index eb7fc20..745222c 100644 --- a/day09/src/main.rs +++ b/day09/src/main.rs @@ -12,7 +12,7 @@ fn main() { let mut total = 0; for line in input { - let mut line_enders: Vec = vec![*line.last().unwrap()]; + let mut line_starters: Vec = vec![*line.first().unwrap()]; let mut cur_line: Vec = line; while !cur_line.iter().all(|x| *x == 0) { let mut next_line: Vec = vec![]; @@ -20,15 +20,51 @@ fn main() { let diff = cur_line[i] - cur_line[i-1]; next_line.push(diff) } - line_enders.push(*next_line.last().unwrap()); + line_starters.push(*next_line.first().unwrap()); cur_line = next_line; } let mut sum = 0; - for i in (1..line_enders.len()).rev() { - sum = sum + line_enders[i - 1]; + for i in (1..line_starters.len()).rev() { + sum = line_starters[i - 1] - sum; } total += sum; } println!("{:?}", total) } + + +// use std::fs; + +// fn main() { +// let input = fs::read_to_string("input.txt").unwrap(); +// let input: Vec<_> = input.split('\n') +// .map(|line| { +// line.split_whitespace() +// .map(|num| num.parse::().unwrap()) +// .collect::>() +// }).collect(); + +// let mut total = 0; + +// for line in input { +// let mut line_enders: Vec = vec![*line.last().unwrap()]; +// let mut cur_line: Vec = line; +// while !cur_line.iter().all(|x| *x == 0) { +// let mut next_line: Vec = vec![]; +// for i in 1..cur_line.len() { +// let diff = cur_line[i] - cur_line[i-1]; +// next_line.push(diff) +// } +// line_enders.push(*next_line.last().unwrap()); +// cur_line = next_line; +// } + +// let mut sum = 0; +// for i in (1..line_enders.len()).rev() { +// sum = sum + line_enders[i - 1]; +// } +// total += sum; +// } +// println!("{:?}", total) +// }