Files
aoc-2025/day03.sql

61 lines
1.1 KiB
MySQL
Raw Permalink Normal View History

2025-12-06 17:20:26 +01:00
with recursive banks as (
select unnest(split(content, e'\n')) as bank from read_text('data/03.in')
),
banks_1 as (
select
(select arg_max(i, bank[i]) from range(1, len(bank)) r (i)) as i1,
bank
from banks
),
banks_2 as (
select
i1,
(select arg_max(i, bank[i]) from range(i1 + 1, len(bank) + 1) r (i))
as i2,
bank
from banks_1
),
banks_12 as (
select
12 as i,
bank,
0 as r
from banks
union all
select
i - 1,
bank,
(
select arg_max(j, bank[j])
from
range(
r + 1,
len(bank) - i + 2
) m (j)
)
from banks_12
where i > 0
),
part1 as (
select
sum(
cast(bank[i1] as int64) * 10
+ cast(bank[i2] as int64)
) as solution
from banks_2
),
part2 as (
select sum(cast(10 ^ i as int64) * cast(bank[r] as int64)) as solution
from banks_12
where i < 12
)
select
(select solution from part1) as p1,
(select solution from part2) as p2;