Files
2020-12-10 01:04:51 -05:00

33 lines
793 B
Go

package algos
// RotateGrid returns the inputted grid, rotated counterclockwise
// call it multiple times for 180, & 270 degree rotations
func RotateStringGrid(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 RotateIntGrid(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
}