본문 바로가기
코딩테스트

LeetCode - Set Matrix Zeroes

by 월성참치 2025. 1. 2.

문제요약

MxN의 이차원 배열이 주어진다
이차원 배열의 요소가 0일 경우 해당 요소의 행과 열을 모두 0으로 바꾼다
모든 0에 대한 처리가 끝난 이차원 배열을 반환한다

예시


입력: matrix = [[1,1,1],[1,0,1],[1,1,1]]
출력: [[1,0,1],[0,0,0],[1,0,1]]


입력: matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
출력력: [[0,0,0,0],[0,4,5,0],[0,3,1,0]]

풀이

var setZeroes = function(matrix) {
    if(matrix.length === 1 && matrix[0].includes(0)){
        matrix[0].fill(0);
        return matrix
    }
    const arr = []
    for(let i=0;i<matrix.length;i++){
        for (let j=0;j<matrix[i].length;j++){
            if(matrix[i][j] === 0){
                arr.push([i,j])
            }
        }
};
for(let i=0;i<arr.length;i++){
    for(let j=0;j<matrix[0].length;j++){
        matrix[arr[i][0]][j] = 0;
    }
    for(let j=0;j<matrix.length;j++){
        matrix[j][arr[i][1]] = 0;
    }
}
return matrix
}
  • 이차원 배열이 단일 행이며 0이 포함되는경우에는 해당 행 전체를 0으로 채우고 반환한다
  • 이차원 배열의 요소를 검사하며 0인 경우 해당 요소의 행과 열을 arr에 저장한다
  • arr에 저장된 정보에 따라 행과 열을 모두 0으로 바꾼뒤 반환한다

시간복잡도 : O(n^2)