[LeetCode] 73. Set Matrix Zeroes

Chobby·2024년 9월 11일
1

LeetCode

목록 보기
109/194

행렬을 순회하며 0 요소가 있는 행과 열을 감지하여 저장한 후 재순회하며 해당 열이나 행의 요소가 발견되었을 때 0으로 변환하는 로직을 구성했음

시간복잡도가 높기에 문제가 될거라 판단하였으나 생각과는 달리 풀어져서 놀라움

😎풀이

function setZeroes(matrix: number[][]): void {
    const m = matrix.length
    const n = matrix[0].length

    const zeroRows = new Set()
    const zeroCols = new Set()

    // 0 요소 감지
    for(let i = 0; i < m; i++) {
        for(let j = 0; j < n; j++) {
            if(matrix[i][j] !== 0) continue
            zeroRows.add(i)
            zeroCols.add(j)
        }
    }

    // 0 행렬 반영
    for(let i = 0; i < m; i++) {
        for(let j = 0; j < n; j++) {
            if(!zeroRows.has(i) && !zeroCols.has(j)) continue
            matrix[i][j] = 0
        }
    }
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글