add comment
This commit is contained in:
parent
41604e606a
commit
d470daf83d
1 changed files with 8 additions and 18 deletions
|
@ -100,10 +100,8 @@ impl FromStr for Grid {
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
if char == '.' {
|
if char == '.' {
|
||||||
// println!("Ended number seq, hit dot after {:?} {}", num, char);
|
|
||||||
row.push(Item::None);
|
row.push(Item::None);
|
||||||
} else {
|
} else {
|
||||||
// println!("Ended number seq, hit symbol after {:?} {}", num, char);
|
|
||||||
row.push(Item::Symbol(char == '*'))
|
row.push(Item::Symbol(char == '*'))
|
||||||
}
|
}
|
||||||
if let Some(value) = num {
|
if let Some(value) = num {
|
||||||
|
@ -118,6 +116,11 @@ impl FromStr for Grid {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This killed me, I forgot to add a check after the end of the line to see if I
|
||||||
|
// was still "scanning" for a number and adding it. There was 1 single number not
|
||||||
|
// getting parsed that was on the right edge of the grid and I could not figure it
|
||||||
|
// out for a while.
|
||||||
if let Some(value) = num {
|
if let Some(value) = num {
|
||||||
grid.numbers.push(Number {
|
grid.numbers.push(Number {
|
||||||
value,
|
value,
|
||||||
|
@ -141,20 +144,10 @@ fn part1(input: String) -> Result<usize> {
|
||||||
let is_part_no = adjacent
|
let is_part_no = adjacent
|
||||||
.iter()
|
.iter()
|
||||||
.any(|item| matches!(item, (Item::Symbol(_), _, _)));
|
.any(|item| matches!(item, (Item::Symbol(_), _, _)));
|
||||||
|
|
||||||
// ```
|
|
||||||
// println!(
|
|
||||||
// "Checking number: {:?}, is part: {}\tadjacent: {:?}",
|
|
||||||
// number.value, is_part_no, adjacent
|
|
||||||
// );
|
|
||||||
// ```
|
|
||||||
if is_part_no {
|
if is_part_no {
|
||||||
// print!("{}, ", number.value);
|
|
||||||
sum += number.value;
|
sum += number.value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// grid.print();
|
|
||||||
Ok(sum)
|
Ok(sum)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -177,17 +170,14 @@ fn part2(input: String) -> Result<usize> {
|
||||||
if gear_nums.len() >= 2 {
|
if gear_nums.len() >= 2 {
|
||||||
// this is lazy.. adds duplicates but w/e
|
// this is lazy.. adds duplicates but w/e
|
||||||
let power = gear_nums.iter().fold(1, |pow, gear| pow * gear.value);
|
let power = gear_nums.iter().fold(1, |pow, gear| pow * gear.value);
|
||||||
gear_nums.iter().for_each(|g| {
|
gear_nums
|
||||||
// println!("GEAR FOUND: {}/{}", g.value, power);
|
.iter()
|
||||||
used.push((g.row_index, g.char_start))
|
.for_each(|g| used.push((g.row_index, g.char_start)));
|
||||||
});
|
|
||||||
sum += power;
|
sum += power;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// grid.print();
|
|
||||||
Ok(sum)
|
Ok(sum)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue