1
0
Fork 0
advent-of-code/2024/lib/2024/1.ex
2024-12-01 08:45:28 -05:00

34 lines
620 B
Elixir

import AOC
aoc 2024, 1 do
def p1(input) do
{left, right} = read_input(input)
left
|> Enum.sort()
|> Enum.zip_with(Enum.sort(right), &abs(&1 - &2))
|> Enum.sum()
end
def p2(input) do
{left, right} = read_input(input)
right_list_freqs = Enum.frequencies(right)
left
|> Enum.map(&(&1 * Map.get(right_list_freqs, &1, 0)))
|> Enum.sum()
end
defp read_input(input) do
input
|> String.split("\n")
|> Enum.map(fn line ->
line
|> String.split()
|> Enum.map(&String.to_integer/1)
|> List.to_tuple()
end)
|> Enum.unzip()
end
end