Set Matrix Zeroes

Edit

Difficulty: MEDIUM

Categories: ๋ฐฐ์—ด/๋ฌธ์ž์—ด

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


Solutions

Add Solution
JAVA 2026-10-02 12:00 Edit
class Solution {
    public void setZeroes(int[][] matrix) {
        int m = matrix.length, n = matrix[0].length;
        boolean firstRowZero = false, firstColZero = false;
        for (int i = 0; i < m; i++) if (matrix[i][0] == 0) firstColZero = true;
        for (int j = 0; j < n; j++) if (matrix[0][j] == 0) firstRowZero = true;
        for (int i = 1; i < m; i++) {
            for (int j = 1; j < n; j++) {
                if (matrix[i][j] == 0) {
                    matrix[i][0] = 0;
                    matrix[0][j] = 0;
                }
            }
        }
        for (int i = 1; i < m; i++) {
            if (matrix[i][0] == 0) {
                for (int j = 1; j < n; j++) matrix[i][j] = 0;
            }
        }
        for (int j = 1; j < n; j++) {
            if (matrix[0][j] == 0) {
                for (int i = 1; i < m; i++) matrix[i][j] = 0;
            }
        }
        if (firstRowZero) {
            for (int j = 0; j < n; j++) matrix[0][j] = 0;
        }
        if (firstColZero) {
            for (int i = 0; i < m; i++) matrix[i][0] = 0;
        }
    }
}
Notes:

[์ž๋™ ํ’€์ด ยท gpt-4.1-mini] ํ–‰๊ณผ ์—ด์— 0์ด ํ•˜๋‚˜๋ผ๋„ ์žˆ์œผ๋ฉด ๊ทธ ํ–‰๊ณผ ์—ด ์ „์ฒด๋ฅผ 0์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ์ถ”๊ฐ€ ๊ณต๊ฐ„ ์—†์ด ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์ฒซ ํ–‰๊ณผ ์ฒซ ์—ด์„ ๋งˆํ‚น์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ , ๋ณ„๋„์˜ ๋ณ€์ˆ˜๋กœ ์ฒซ ํ–‰๊ณผ ์ฒซ ์—ด์— 0์ด ์žˆ๋Š”์ง€ ์ฒดํฌํ•œ ๋’ค, ๋‚˜์ค‘์— ํ•ด๋‹น ํ–‰๊ณผ ์—ด์„ 0์œผ๋กœ ๋ฐ”๊พผ๋‹ค. ์‹œ๊ฐ„ O(m*n) ยท ๊ณต๊ฐ„ O(1) ์ฃผ์˜: ์ฒซ ํ–‰๊ณผ ์ฒซ ์—ด์„ ๋งˆํ‚น์šฉ์œผ๋กœ ์“ฐ๋ฉด์„œ ์›๋ž˜ ์ฒซ ํ–‰/์—ด์— 0์ด ์žˆ์—ˆ๋Š”์ง€ ๋ณ„๋„๋กœ ๊ผญ ์ฒดํฌํ•ด์•ผ ํ•œ๋‹ค.