summaryrefslogtreecommitdiffstats
path: root/src/day01.exs
diff options
context:
space:
mode:
authorAlexandre Jesus <adbjesus@gmail.com>2024-12-03 00:26:58 +0000
committerAlexandre Jesus <adbjesus@gmail.com>2024-12-03 00:41:29 +0000
commit6da10b268dd639594cb5a8cc6e9bbb86ce4beb5e (patch)
tree12242f658c49c0cbcf4f8bf987f0f8a52ee51f2f /src/day01.exs
downloadaoc2024-6da10b268dd639594cb5a8cc6e9bbb86ce4beb5e.tar.gz
aoc2024-6da10b268dd639594cb5a8cc6e9bbb86ce4beb5e.zip
Days 1 and 2
Diffstat (limited to 'src/day01.exs')
-rw-r--r--src/day01.exs20
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)