add 2024 day 1 livebook
This commit is contained in:
parent
9754128162
commit
cf454dfc22
1 changed files with 43 additions and 0 deletions
43
elixir/livebook/2024/day1.livemd
Normal file
43
elixir/livebook/2024/day1.livemd
Normal 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
|
||||
```
|
Loading…
Add table
Reference in a new issue