fun sortColumns(matrix: Array<Array<String>>) {
val rows = matrix.size
val cols = matrix[0].size
for (col in 0 until cols) {
// Extract column into a list
val column = List(rows) { matrix[it][col] }.sorted()
// Place sorted values back into the matrix
for (row in 0 until rows) {
matrix[row][col] = column[row]
}
}
}
fun printMatrix(matrix: Array<Array<String>>) {
matrix.forEach { row -> println(row.joinToString(" ")) }
}
fun main() {
val matrix = arrayOf(
arrayOf("ccc", "zzzz", "yyyyyy"),
arrayOf("eeee", "aaa", "ffff"),
arrayOf("uu", "hhh", "uuu"),
arrayOf("bbb", "gg", "x")
)
println("Original Matrix:")
printMatrix(matrix)
sortColumns(matrix)
println("\nSorted Matrix:")
printMatrix(matrix)
}
/*
run:
Original Matrix:
ccc zzzz yyyyyy
eeee aaa ffff
uu hhh uuu
bbb gg x
Sorted Matrix:
bbb aaa ffff
ccc gg uuu
eeee hhh x
uu zzzz yyyyyy
*/