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 3 of 2025
hauleth.dev
3 months ago
b5ea05b3
43df0066
verified
This commit was signed with the committer's
known signature
.
hauleth.dev
SSH Key Fingerprint:
SHA256:1hEP8QO8nM2KQfQ8jK4Q19y/CmqVZQI/cNSht3c1QlI=
+53
-1
2 changed files
expand all
collapse all
unified
split
2025
day02.livemd
day03.livemd
+1
-1
2025/day02.livemd
···
77
77
|> Enum.sum()
78
78
```
79
79
80
80
-
<!-- livebook:{"offset":1434,"stamp":{"token":"XCP.XGwVuWkI5pveel-Tx5hGUsCOmJKjA6byJZgIevkuBoRsAeaI3iyjR6XNRi9nwICSeuXI_2gJ9nWRKsSPzj30sqjcf8vmy_6FGXhLmap28ImjUKnK7ruHw0EpJansNfksuQ","version":2}} -->
80
80
+
<!-- livebook:{"offset":1434,"stamp":{"token":"XCP.NoAgOlNzs9jV0M8QxQDrdfMwKQR_xYkBG2FLF06XnKPtJ5ps3S83JucEVQZ7fJF0utUaryiCOT7xPWESlw3lS3TI6Jujiw8uFAZdKEXUL_jmZMHVF37TxiY4vRwKjfwvfg","version":2}} -->
+52
2025/day03.livemd
···
1
1
+
# Day 03
2
2
+
3
3
+
```elixir
4
4
+
Mix.install([:kino_aoc])
5
5
+
```
6
6
+
7
7
+
## Section
8
8
+
9
9
+
<!-- livebook:{"attrs":"eyJhc3NpZ25fdG8iOiJwdXp6bGVfaW5wdXQiLCJkYXkiOiIzIiwic2Vzc2lvbl9zZWNyZXQiOiJBRFZFTlRfT0ZfQ09ERV9TRVNTSU9OIiwieWVhciI6IjIwMjUifQ","chunks":null,"kind":"Elixir.KinoAOC.HelperCell","livebook_object":"smart_cell"} -->
10
10
+
11
11
+
```elixir
12
12
+
{:ok, puzzle_input} =
13
13
+
KinoAOC.download_puzzle("2025", "3", System.fetch_env!("LB_ADVENT_OF_CODE_SESSION"))
14
14
+
```
15
15
+
16
16
+
```elixir
17
17
+
batteries =
18
18
+
puzzle_input
19
19
+
|> String.split("\n", trim: true)
20
20
+
|> Enum.map(fn row ->
21
21
+
row
22
22
+
|> String.to_charlist()
23
23
+
|> Enum.map(& &1 - ?0)
24
24
+
end)
25
25
+
```
26
26
+
27
27
+
```elixir
28
28
+
defmodule Joltage do
29
29
+
def make_largest(list, n) do
30
30
+
to_remove = length(list) - n
31
31
+
Enum.reduce(1..to_remove, list, fn _, acc -> make_larger(acc) end)
32
32
+
end
33
33
+
34
34
+
def make_larger([_]), do: []
35
35
+
def make_larger([a, b | rest]) when a < b, do: [b | rest]
36
36
+
def make_larger([b | rest]), do: [b | make_larger(rest)]
37
37
+
end
38
38
+
```
39
39
+
40
40
+
## Part 1
41
41
+
42
42
+
```elixir
43
43
+
Enum.sum_by(batteries, &Integer.undigits(Joltage.make_largest(&1, 2)))
44
44
+
```
45
45
+
46
46
+
## Part 2
47
47
+
48
48
+
```elixir
49
49
+
Enum.sum_by(batteries, &Integer.undigits(Joltage.make_largest(&1, 12)))
50
50
+
```
51
51
+
52
52
+
<!-- livebook:{"offset":1124,"stamp":{"token":"XCP.c4B4LAKOm9IZipbHc85MIeUBdcwcaQptUgMJIlHzU3DD1hssADSGdE-vByW1pHXsrARIeklYPeAk8Nn3AXBYvoEjBgm8zEP9oMXmp04xI_hLHezHURvrp6zdapkG0-l_sw","version":2}} -->