tangled
alpha
login
or
join now
chay.dev
/
aoc2025
1
fork
atom
this repo has no description
1
fork
atom
overview
issues
pulls
pipelines
day04: part 2
chay.dev
4 months ago
424a486f
f56fc3be
+19
2 changed files
expand all
collapse all
unified
split
lib
day04
grid.ex
day04.ex
+11
lib/day04.ex
reviewed
···
45
45
|> Grid.get_reachable_ats()
46
46
|> Enum.count()
47
47
end
48
48
+
49
49
+
def solve_part_2(%Grid{} = grid) do
50
50
+
remove_till_no_reachable_ats(grid, 0)
51
51
+
end
52
52
+
53
53
+
def remove_till_no_reachable_ats(%Grid{} = grid, acc_count) do
54
54
+
case Grid.remove_and_count_reachable_ats(grid) do
55
55
+
{_, 0} -> acc_count
56
56
+
{new_grid, count} -> remove_till_no_reachable_ats(new_grid, acc_count + count)
57
57
+
end
58
58
+
end
48
59
end
+8
lib/day04/grid.ex
reviewed
···
6
6
%__MODULE__{grid_map: grid_map, width: width, height: height}
7
7
end
8
8
9
9
+
def remove_and_count_reachable_ats(%__MODULE__{} = grid) do
10
10
+
grid
11
11
+
|> get_reachable_ats()
12
12
+
|> Enum.reduce({grid, 0}, fn coord, {grid, count} ->
13
13
+
{%{grid | grid_map: Map.put(grid.grid_map, coord, ".")}, count + 1}
14
14
+
end)
15
15
+
end
16
16
+
9
17
def get_reachable_ats(%__MODULE__{grid_map: grid_map, width: width, height: height}) do
10
18
for x <- 0..(width - 1),
11
19
y <- 0..(height - 1),