diff --git a/day1.exs b/day1.exs new file mode 100644 index 0000000..0b1149c --- /dev/null +++ b/day1.exs @@ -0,0 +1,29 @@ +defmodule DayOne do + def partOne(input) do + String.split(input, "\n") + |> Enum.map(&DayOne.parseNum/1) + |> List.foldr(0, &(&1 + &2)) + end + + def partTwo(input), do: partTwo(String.split(input, "\n") |> Enum.map(&DayOne.parseNum/1), 0, []) + + def partTwo(input, acc , frequencies) do + [head | tail] = input + freq = head + acc + # IO.puts("Got frequency #{freq}") + if Enum.member?(frequencies, freq), do: freq, else: partTwo(tail ++ [head], freq, [freq | frequencies]) + end + + def parseNum("+" <> num) do + {intVal, ""} = Integer.parse(num) + intVal + end + def parseNum("-" <> num) do + {intVal, ""} = Integer.parse(num) + 0 - intVal + end + def parseNum(num) do + IO.puts(num) + 0 + end +end