This commit is contained in:
Kevin Hughes 2024-12-01 19:23:51 +00:00
parent 182bbf542c
commit f214201581
Signed by: kev
GPG Key ID: 4F56A079AF7A66A6
1 changed files with 48 additions and 0 deletions

48
day01.livemd Normal file
View File

@ -0,0 +1,48 @@
# Day01
```elixir
Mix.install([
{:kino, "~> 0.14.2"},
{:decimal, "~> 2.2"}
])
```
## Input
```elixir
input = Kino.Input.textarea("Input")
```
## Parse Input
```elixir
input =
input
|> Kino.Input.read
|> String.split("\n")
|> Enum.map(fn l -> String.split(l, " ") end)
|> List.foldl([[],[]], fn [x, y], [xa, ya] ->
[[String.to_integer(x)| xa], [String.to_integer(y)| ya]]
end)
```
## Part One
```elixir
input
|> Enum.map(&Enum.sort/1)
|> Enum.zip
|> Enum.map(fn {x,y} -> abs(x - y) end)
|> Enum.sum
```
## Part Two
```elixir
[x, y] = input
f = Enum.frequencies(y)
Enum.map(xfn xx -> xx * (f[xx] || 0) end)
|> Enum.sum
```