add 2024 day 1 livebook

This commit is contained in:
Caleb Webber 2024-12-02 09:38:26 -05:00
parent 9754128162
commit cf454dfc22

View file

@ -0,0 +1,43 @@
# AOC2024 Day 1
## Section
```elixir
input = """
3 4
4 3
2 5
1 3
3 9
3 3
"""
```
```elixir
{left, right} = for [a,b] <- input |> String.trim()
|> String.split("\n")
|> Enum.map(&(String.split(&1, " ") |> Enum.map(fn s -> String.to_integer(s) end))),
reduce: {[],[]}
do
{k,l} -> {[a|k],[b|l]}
end
```
```elixir
for {a, b} <- (left |> Enum.sort()) |> Enum.zip((right |> Enum.sort())),
reduce: 0 do
acc -> acc + abs(b - a)
end
```
```elixir
freq = right |> Enum.frequencies()
```
```elixir
for n <- left,
f = Map.get(freq, n, 0),
reduce: 0 do
acc -> acc + n*f
end
```