this repo has no description
at master 890 B view raw
1<!-- vim:set ft=markdown: --> 2 3<!-- livebook:{"persist_outputs":true} --> 4 5# Day 7 6 7```elixir 8input = 9 File.read!("day7.txt") 10 |> String.trim() 11 |> String.split(",") 12 |> Enum.map(&String.to_integer/1) 13``` 14 15```output 16[1101, 1, 29, 67, 1102, 0, 1, 65, 1008, 65, 35, 66, 1005, 66, 28, 1, 67, 65, 20, 4, 0, 1001, 65, 1, 17 65, 1106, 0, 8, 99, 35, 67, 101, 99, 105, 32, 110, 39, 101, 115, 116, 32, 112, 97, 115, 32, 117, 18 110, 101, 32, 105, ...] 19``` 20 21## Task 1 22 23```elixir 24median = Enum.at(Enum.sort(input), div(length(input), 2)) 25 26input 27|> Enum.map(&abs(&1 - median)) 28|> Enum.sum() 29``` 30 31```output 32336721 33``` 34 35## Task 2 36 37```elixir 38arith_sum = fn n -> div(n * n + n, 2) end 39 40max = Enum.max(input) 41 42mean = Enum.sum(input) / length(input) 43 44[floor(mean), ceil(mean)] 45|> Enum.map(fn n -> 46 input 47 |> Enum.map(&arith_sum.(abs(&1 - n))) 48 |> Enum.sum() 49end) 50|> Enum.min() 51``` 52 53```output 5491638945 55```