2차원 매트릭스에서 순차적으로 배열에 번호를 채워 출력하는 문제이다.
이전에 해결했던 바와 같이 각 축의 포인터를 생성하여 직접 순회하며 번호를 채우는 방식으로 해결하였음
function generateMatrix(n: number): number[][] {
const board = Array.from({ length: n }, () => Array(n).fill(0))
let [top, right, bottom, left] = [0, n - 1, n - 1, 0]
let curNum = 1
while(top <= bottom && left <= right) {
// 우향 이동
for(let i = left; i <= right; i++) {
board[top][i] = curNum++
}
top++
// 하향 이동
for(let i = top; i <= bottom; i++) {
board[i][right] = curNum++
}
right--
// 좌향 이동
for(let i = right; i >= left; i--) {
board[bottom][i] = curNum++
}
bottom--
// 상향 이동
for(let i = bottom; i >= top; i--) {
board[i][left] = curNum++
}
left++
}
return board
};