Problem From.
https://leetcode.com/problems/spiral-matrix-ii/
오늘 문제는 어제 문제와 비슷하게 시계방향으로 매트릭스를 만들면서 1씩 증가하는 숫자를 채워넣는 문제였다.
어제 문제와 같이 minRow, maxRow, minCol, maxCol 을 만들어서 그 조건에 따라서 while 문을 돌면서 미리 만들어둔 n X n array 에 숫자를 채워넣으면 됐다.
class Solution {
fun generateMatrix(n: Int): Array<IntArray> {
val result = Array(n) { IntArray(n) { 0 } }
var minRow = 0
var maxRow = n - 1
var minCol = 0
var maxCol = n - 1
var cnt = 1
while(minRow <= maxRow && minCol <= maxCol) {
for(i in minCol..maxCol) {
result[minRow][i] = cnt
cnt += 1
}
minRow += 1
for(i in minRow..maxRow) {
result[i][maxCol] = cnt
cnt += 1
}
maxCol -= 1
if(minRow <= maxRow) {
for(i in maxCol downTo minCol) {
result[maxRow][i] = cnt
cnt += 1
}
maxRow -= 1
}
if(minCol <= maxCol) {
for(i in maxRow downTo minRow) {
result[i][minCol] = cnt
cnt += 1
}
minCol += 1
}
}
return result
}
}