this repo has no description
1# Day 01
2
3```elixir
4Mix.install([:kino_aoc])
5```
6
7## Section
8
9<!-- livebook:{"attrs":"eyJhc3NpZ25fdG8iOiJwdXp6bGVfaW5wdXQiLCJkYXkiOiIxIiwic2Vzc2lvbl9zZWNyZXQiOiJBRFZFTlRfT0ZfQ09ERV9TRVNTSU9OIiwieWVhciI6IjIwMjQifQ","chunks":null,"kind":"Elixir.KinoAOC.HelperCell","livebook_object":"smart_cell"} -->
10
11```elixir
12{:ok, puzzle_input} =
13 KinoAOC.download_puzzle("2024", "1", System.fetch_env!("LB_ADVENT_OF_CODE_SESSION"))
14```
15
16```elixir
17{left, right} =
18puzzle_input
19|> String.split("\n", trim: true)
20|> Enum.map(fn line ->
21 line
22 |> String.split(" ", trim: true)
23 |> Enum.map(&String.to_integer/1)
24 |> List.to_tuple()
25end)
26|> Enum.unzip()
27```
28
29## Part 1
30
31```elixir
32left
33|> Enum.sort()
34|> Enum.zip_with(Enum.sort(right), &abs(&1 - &2))
35|> Enum.sum()
36```
37
38## Part 2
39
40```elixir
41freq_left = Enum.frequencies(left)
42freq_right = Enum.frequencies(right)
43
44freq_left
45|> Enum.map(fn {id, n} -> id * n * Map.get(freq_right, id, 0) end)
46|> Enum.sum()
47```
48
49<!-- livebook:{"offset":944,"stamp":{"token":"XCP.kAiLPYFFjB5gittWtRe2qvQNl0eypXdV8-SA_CjsvAhzJAKbzccMdisxMjrJQ8vBacfLZV0B8GUs0xEmkXWg8-XngROm0ts7gOF-jJzV479UO2mEuG9Kxiw_9tiicWt0mN8","version":2}} -->