this repo has no description
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```