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