From bd3898367dd273b1265db2261c5c85bc627d117d Mon Sep 17 00:00:00 2001 From: Kevin Hughes Date: Sun, 1 Dec 2024 19:23:51 +0000 Subject: [PATCH] Day One --- day01.livemd | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 day01.livemd diff --git a/day01.livemd b/day01.livemd new file mode 100644 index 0000000..793195b --- /dev/null +++ b/day01.livemd @@ -0,0 +1,43 @@ +# Day01 + +```elixir +Mix.install([ + {:kino, "~> 0.14.2"}, + {:decimal, "~> 2.2"} +]) +``` + +## Section + +```elixir +input = Kino.Input.textarea("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) +``` + +```elixir +input +|> Enum.map(&Enum.sort/1) +|> Enum.zip +|> Enum.map(fn {x,y} -> abs(x - y) end) +|> Enum.sum +``` + +```elixir +[x, y] = input + +f = Enum.frequencies(y) + +x +|> Enum.map(fn xx -> xx * (f[xx] || 0) end) +|> Enum.sum +```