my solutions to advent of code
aoc
advent-of-code
1defmodule Main do
2 {_, input} =
3 File.read("../input.txt")
4
5 input = input |> String.trim() |> String.graphemes()
6
7 input
8 |> Enum.reduce(0, fn step, floor ->
9 case step do
10 "(" -> floor + 1
11 ")" -> floor - 1
12 end
13 end)
14 |> IO.puts()
15
16 input
17 |> Enum.reduce_while({0, 0}, fn step, i_floor ->
18 {i, floor} = i_floor
19
20 i = i + 1
21
22 floor =
23 floor +
24 case step do
25 "(" -> 1
26 ")" -> -1
27 end
28
29 case floor do
30 -1 -> {:halt, {i, floor}}
31 _ -> {:cont, {i, floor}}
32 end
33 end)
34 |> elem(0)
35 |> IO.puts()
36end