Day One
This commit is contained in:
parent
182bbf542c
commit
f214201581
|
@ -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
|
||||
```
|
Loading…
Reference in New Issue