feat: solve part two
This commit is contained in:
@@ -46,5 +46,36 @@ func PartOne(data int) int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func PartTwo(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++
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user