Skip to content

Commit 6f0c55c

Browse files
committed
Cleanup day 4
1 parent 82262a2 commit 6f0c55c

File tree

1 file changed

+8
-15
lines changed

1 file changed

+8
-15
lines changed

src/bin/04.rs

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,10 @@ pub fn part_one(input: &str) -> Option<u32> {
1414
.filter(|&(_, c, _)| c == 'X')
1515
.filter(|&(point, _, d)| grid.is_in_bounds(point + (d * 3)))
1616
.filter(|&(point, _, d)| {
17-
let x_pos = point;
18-
let m_pos = x_pos + d;
19-
let a_pos = m_pos + d;
20-
let s_pos = a_pos + d;
21-
let spells_xmas = grid[x_pos] == 'X'
22-
&& grid[m_pos] == 'M'
23-
&& grid[a_pos] == 'A'
24-
&& grid[s_pos] == 'S';
25-
17+
let spells_xmas = grid[point] == 'X'
18+
&& grid[point + d] == 'M'
19+
&& grid[point + d * 2] == 'A'
20+
&& grid[point + d * 3] == 'S';
2621
spells_xmas
2722
})
2823
.count();
@@ -37,7 +32,7 @@ pub fn part_two(input: &str) -> Option<u32> {
3732
.iter_item_and_position()
3833
.filter(|&(_, &c)| c == 'A')
3934
.filter(|&(point, _)| {
40-
let (Some(&top_left), Some(&top_right), Some(&bot_left), Some(&bot_right)) = (
35+
let (Some(&tl), Some(&tr), Some(&bl), Some(&br)) = (
4136
grid.get_item(point + UP + LEFT),
4237
grid.get_item(point + UP + RIGHT),
4338
grid.get_item(point + DOWN + LEFT),
@@ -46,11 +41,9 @@ pub fn part_two(input: &str) -> Option<u32> {
4641
return false;
4742
};
4843

49-
let spells_xmas_diag1 =
50-
(top_left == 'M' && bot_right == 'S') || (top_left == 'S' && bot_right == 'M');
51-
let spells_xmas_diag2 =
52-
(top_right == 'M' && bot_left == 'S') || (top_right == 'S' && bot_left == 'M');
53-
spells_xmas_diag1 && spells_xmas_diag2
44+
let diag1 = (tl == 'M' && br == 'S') || (tl == 'S' && br == 'M');
45+
let diag2 = (tr == 'M' && bl == 'S') || (tr == 'S' && bl == 'M');
46+
diag1 && diag2
5447
})
5548
.count();
5649

0 commit comments

Comments
 (0)