diff options
Diffstat (limited to 'src/day01.exs')
-rw-r--r-- | src/day01.exs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/day01.exs b/src/day01.exs new file mode 100644 index 0000000..b9b346d --- /dev/null +++ b/src/day01.exs @@ -0,0 +1,20 @@ +[l1, l2] = IO.read(:stdio, :eof) +|> String.split([" ", "\n"], trim: true) +|> Enum.map(&String.to_integer/1) +|> Enum.with_index() +|> Enum.split_with(fn {_v, i} -> rem(i, 2) == 0 end) +|> Tuple.to_list() +|> Enum.map(fn l -> Enum.map(l, fn {v, _i} -> v end) end) +|> Enum.map(&Enum.sort/1) + +ans1 = Enum.zip(l1, l2) +|> Enum.map(fn {v1, v2} -> abs(v1 - v2) end) +|> Enum.sum() + +IO.puts(ans1) + +c2 = Enum.frequencies(l2) + +ans2 = Enum.map(l1, &(&1 * Map.get(c2, &1, 0))) |> Enum.sum() + +IO.puts(ans2) |