Leetcode - 73. Set Matrix Zeroes

숲사람·2022년 5월 16일
0

멘타트 훈련

목록 보기
27/237

문제

주어진 matrix의 값이 0인 요소의 동일 행과 열을 모두 0으로 만들어라

Input: matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
Output: [[0,0,0,0],[0,4,5,0],[0,3,1,0]]

https://leetcode.com/problems/set-matrix-zeroes/

해결 O(N)

행과 열의 각각 table을 만들고 배열값이 0인 i,j를 표기. 배열을 순회 하면서 table[i]가 표시된 모든 matrix[i][]를 0으로 만들고 j도 동일하게 수행.

#define MAX 201

void setZeroes(int** matrix, int matrixSize, int* matrixColSize){
    int i_table[MAX] = {0};
    int j_table[MAX] = {0};
    
    for (int i = 0; i < matrixSize; i++) {
        for (int j = 0; j < *matrixColSize; j++) {
            if (matrix[i][j] == 0) {
                i_table[i] = 1;
                j_table[j] = 1;
            }
        }
    }
    for (int i = 0; i < matrixSize; i++) {
        for (int j = 0; j < *matrixColSize; j++) {
            if (i_table[i] == 1)
                matrix[i][j] = 0;
            if (j_table[j] == 1)
                matrix[i][j] = 0;
        }
    }
}
profile
기록 & 정리 아카이브 용도 (보다 완성된 글은 http://soopsaram.com/documentudy)

0개의 댓글