mirror of
https://github.com/Threnklyn/advent-of-code-go.git
synced 2026-05-24 13:48:35 +02:00
34 lines
849 B
Go
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
|
|
}
|