This commit is contained in:
ctsk
2025-12-07 20:05:55 +01:00
parent bb619ba9a2
commit d78792f807
2 changed files with 213 additions and 0 deletions

71
day07.sql Normal file
View File

@@ -0,0 +1,71 @@
with recursive
grid (line, row) as (
select
unnest(line),
generate_subscripts(line, 1) as row
from (
select string_split(trim(content, e'\n'), e'\n') as line
from read_text('data/07.in')
)
),
dims as (
select
max(row) as height,
max(length(line)) as width
from grid
),
initial as (
select col from range(1, (select width from dims)) r (col), grid
where row = 1 and line[col] <> '.'
),
trace (depth, col, num) as (
select
1,
col,
cast(1 as int128)
from initial
union
select
depth,
col,
sum(num)
from
(
select
depth + 1 as depth,
unnest(
case
when line[col] = '^'
then [col - 1, col + 1]
else [col]
end
) as col,
num
from
trace, grid
where
depth + 1 = row
)
group by depth, col
),
part1 (solution) as (
select count(*) from trace, grid
where line[col] = '^' and depth + 1 = row
),
part2 (solution) as (
select sum(num) from trace
where depth = (select height from dims)
)
select
part1.solution as p1,
part2.solution as p2
from part1, part2;