tangled
alpha
login
or
join now
hauleth.dev
/
advent-of-code
3
fork
atom
this repo has no description
3
fork
atom
overview
issues
pulls
pipelines
Day 05 of 2025
hauleth.dev
3 months ago
c7715b9a
26bec5c3
verified
This commit was signed with the committer's
known signature
.
hauleth.dev
SSH Key Fingerprint:
SHA256:1hEP8QO8nM2KQfQ8jK4Q19y/CmqVZQI/cNSht3c1QlI=
+46
1 changed file
expand all
collapse all
unified
split
2025
day05.livemd
+46
2025/day05.livemd
···
1
1
+
# Day 05
2
2
+
3
3
+
```elixir
4
4
+
Mix.install([
5
5
+
:kino_aoc,
6
6
+
:range_set
7
7
+
])
8
8
+
```
9
9
+
10
10
+
## Section
11
11
+
12
12
+
<!-- livebook:{"attrs":"eyJhc3NpZ25fdG8iOiJwdXp6bGVfaW5wdXQiLCJkYXkiOiI1Iiwic2Vzc2lvbl9zZWNyZXQiOiJBRFZFTlRfT0ZfQ09ERV9TRVNTSU9OIiwieWVhciI6IjIwMjUifQ","chunks":null,"kind":"Elixir.KinoAOC.HelperCell","livebook_object":"smart_cell"} -->
13
13
+
14
14
+
```elixir
15
15
+
{:ok, puzzle_input} =
16
16
+
KinoAOC.download_puzzle("2025", "5", System.fetch_env!("LB_ADVENT_OF_CODE_SESSION"))
17
17
+
```
18
18
+
19
19
+
```elixir
20
20
+
[fresh, ingridients] = String.split(puzzle_input, "\n\n")
21
21
+
22
22
+
fresh =
23
23
+
fresh
24
24
+
|> String.split()
25
25
+
|> Enum.map(fn range ->
26
26
+
[a, b] = range |> String.split("-") |> Enum.map(&String.to_integer/1)
27
27
+
28
28
+
a..b//1
29
29
+
end)
30
30
+
|> RangeSet.new()
31
31
+
32
32
+
ingridients =
33
33
+
ingridients
34
34
+
|> String.split()
35
35
+
|> Enum.map(&String.to_integer/1)
36
36
+
```
37
37
+
38
38
+
```elixir
39
39
+
Enum.count(ingridients, & &1 in fresh)
40
40
+
```
41
41
+
42
42
+
```elixir
43
43
+
Enum.count(fresh)
44
44
+
```
45
45
+
46
46
+
<!-- livebook:{"offset":863,"stamp":{"token":"XCP.XHMkonPfVQNZ43fIPanTNAFSPojbYWSWMU1wxn37_PPkpVpaY-fKZmAwoH-3qs2vx3CD_h34H1PjbHKDDWdrb7UxHoJoV5UxMppoorBtxw9hQF7YuznVwOa187BXPmKPcw","version":2}} -->