AdventOfCode 2015 - Day 1
Part 1
input = IO.gets("input: ") |> String.trim()
input
|> String.graphemes()
|> Enum.reduce(0, fn
"(", i -> i + 1
")", i -> i - 1
end)
Part 2
input = IO.gets("input: ") |> String.trim()
input
|> String.graphemes()
|> Enum.with_index(1)
|> Enum.reduce_while(0, fn
{")", i}, 0 ->
# ground floor, going down.
{:halt, i}
{")", _}, floor ->
{:cont, floor - 1}
{"(", _}, floor ->
{:cont, floor + 1}
end)