Files
advent-of-code-go/util/RotateGrid.go
T
2020-08-04 19:54:41 -04:00

34 lines
849 B
Go

package util
// RotateGrid returns the inputted grid, rotated counterclockwise
// call it multiple times for 180, & 270 degree rotations
// TODO modify this to take in any type (not just strings...)
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
}