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