Implemented day 3 part 2 solution
This commit is contained in:
parent
c4a5d93f6c
commit
370bd26513
1 changed files with 17 additions and 1 deletions
|
@ -1,6 +1,6 @@
|
|||
fn main() {
|
||||
let input = std::fs::read_to_string("input/3.txt").unwrap();
|
||||
let (result1, result2) = (part1(&input), 0);
|
||||
let (result1, result2) = (part1(&input), part2(&input));
|
||||
println!("Day 3");
|
||||
println!("Part 1: {}", result1);
|
||||
println!("Part 2: {}", result2);
|
||||
|
@ -59,3 +59,19 @@ fn part1(input: &str) -> u128 {
|
|||
result
|
||||
}
|
||||
|
||||
fn part2(input: &str) -> u128 {
|
||||
let lines: Vec<&str> = input.lines().collect();
|
||||
let mut result = 0_u128;
|
||||
for i in 1..lines.len() - 1 {
|
||||
let line = lines[i];
|
||||
for (j, c) in line.chars().enumerate() {
|
||||
if c != '*' { continue; }
|
||||
let numbers = adjacent_numbers(&lines, i, j);
|
||||
if numbers.len() != 2 { continue; }
|
||||
let prod: u128 = numbers.iter().product();
|
||||
result += prod;
|
||||
}
|
||||
}
|
||||
result
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue