[LeetCode] 59. Spiral Matrix II

Chobby·2024년 9월 6일
1

LeetCode

목록 보기
95/194

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
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글