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 case step do
24 "(" -> 1
25 ")" -> -1
26 end + floor
27
28 case floor do
29 -1 -> {:halt, {i, floor}}
30 _ -> {:cont, {i, floor}}
31 end
32 end)
33 |> elem(0)
34 |> IO.puts()
35end