1
0
Fork 0
advent-of-code/2015/lib/2015/1.ex
2022-09-21 09:19:53 -04:00

26 lines
634 B
Elixir

import AOC
aoc 2015, 1 do
def input_chars(), do: input_string() |> String.split("", trim: true)
def p1 do
input_chars()
|> Enum.reduce(0, fn
"(", floor -> floor + 1
")", floor -> floor - 1
end)
end
def p2 do
input_string()
|> find_step_entering_basement(0, 0)
end
defp find_step_entering_basement(")" <> _, 0, step), do: step + 1
defp find_step_entering_basement("(" <> rest, floor, step),
do: find_step_entering_basement(rest, floor + 1, step + 1)
defp find_step_entering_basement(")" <> rest, floor, step),
do: find_step_entering_basement(rest, floor - 1, step + 1)
end