feat: solve part two

This commit is contained in:
2025-12-22 10:55:56 +01:00
parent 09176fad28
commit bb5764bd14

View File

@@ -46,5 +46,36 @@ func PartOne(data int) int {
}
func PartTwo(data int) int {
return 0
grid := make(map[[2]int]int)
grid[[2]int{0, 0}] = 1
directions := [4][2]int{{1, 0}, {0, 1}, {-1, 0}, {0, -1}}
x, y := 1, 0
directionIdx := 0
sideLength := 1
stepsInSide := 1
for {
sum := grid[[2]int{x - 1, y - 1}] + grid[[2]int{x - 1, y}] + grid[[2]int{x - 1, y + 1}] +
grid[[2]int{x, y - 1}] + grid[[2]int{x, y + 1}] +
grid[[2]int{x + 1, y - 1}] + grid[[2]int{x + 1, y}] + grid[[2]int{x + 1, y + 1}]
if sum > data {
return sum
}
grid[[2]int{x, y}] = sum
if stepsInSide == sideLength {
stepsInSide = 0
if directionIdx%2 == 1 {
sideLength++
}
directionIdx = (directionIdx + 1) % 4
}
x += directions[directionIdx][0]
y += directions[directionIdx][1]
stepsInSide++
}
}