Files
aoc-2025/day02.sql

40 lines
867 B
MySQL
Raw Normal View History

2025-12-06 17:20:26 +01:00
with
bounds as (
select
unnest(string_split(trim(content, '\n'), ',')) as f,
string_split(f, '-') as bounds,
cast(bounds[1] as int64) as low,
cast(bounds[2] as int64) as high
from read_text('data/02.in')
),
candidates as (
select
unnest(range(low, high + 1)) as num,
cast(num as string) as num_str,
len(num_str) as len
from bounds
),
part1 as (
select sum(num) as solution
from candidates
where num_str[: len // 2] = num_str[len // 2 + 1:]
),
part2 as (
select sum(num) as solution
from candidates
where exists (
select stride from range(1, len) as range (stride)
where
len % stride = 0
and repeat(num_str[: stride], len // stride) = num_str
)
)
select
part1.solution as p1,
part2.solution as p2
from part1, part2;