fun rotate90Clockwise(matrix: Array<Array<Int>>): Array<Array<Int>> {
val rows = matrix.size
val cols = matrix[0].size
// Create a new rotated matrix
val rotated = Array(cols) { Array(rows) { 0 } }
// Map values to rotated positions
for (i in 0 until rows) {
for (j in 0 until cols) {
rotated[j][rows - 1 - i] = matrix[i][j]
}
}
return rotated
}
fun printMatrix(matrix: Array<Array<Int>>) {
matrix.forEach { row ->
println(row.joinToString(" "))
}
}
fun main() {
val matrix = arrayOf(
arrayOf(1, 2, 3, 4),
arrayOf(5, 6, 7, 8),
arrayOf(9, 10, 11, 12)
)
println("Original Matrix:")
printMatrix(matrix)
val rotated = rotate90Clockwise(matrix)
println("\nRotated Matrix:")
printMatrix(rotated)
}
/*
run:
Original Matrix:
1 2 3 4
5 6 7 8
9 10 11 12
Rotated Matrix:
9 5 1
10 6 2
11 7 3
12 8 4
*/