mirror of
https://github.com/Threnklyn/advent-of-code-go.git
synced 2026-05-18 19:13:27 +02:00
33 lines
787 B
Go
33 lines
787 B
Go
package util
|
|
|
|
// RotateGrid returns the inputted grid, rotated counterclockwise
|
|
// call it multiple times for 180, & 270 degree rotations
|
|
func RotateGrid(grid [][]string) [][]string {
|
|
rotated := make([][]string, len(grid[0]))
|
|
for i := range rotated {
|
|
rotated[i] = make([]string, len(grid))
|
|
}
|
|
|
|
for i := 0; i < len(grid); i++ {
|
|
for j := 0; j < len(grid[0]); j++ {
|
|
rotated[len(grid[0])-1-j][i] = grid[i][j]
|
|
}
|
|
}
|
|
return rotated
|
|
}
|
|
|
|
// RotateGridInts will transpose a 2D array of ints
|
|
func RotateGridInts(grid [][]int) [][]int {
|
|
rotated := make([][]int, len(grid[0]))
|
|
for i := range rotated {
|
|
rotated[i] = make([]int, len(grid))
|
|
}
|
|
|
|
for i := 0; i < len(grid); i++ {
|
|
for j := 0; j < len(grid[0]); j++ {
|
|
rotated[len(grid[0])-1-j][i] = grid[i][j]
|
|
}
|
|
}
|
|
return rotated
|
|
}
|