Zero to Hero
article thumbnail
Published 2021. 7. 5. 10:15
73. Set Matrix Zeroes Algorithm
 

Set Matrix Zeroes - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

2차원 배열이 주어진다.

2차원 배열에서 (row, col)에 해당하는 값이 0이라면 해당 row와 col을 배열 끝까지 0의 값으로 채우는 문제다.

 

1. 구현

from typing import *


def set_row(board, row):
    board[row] = [1] * len(board[row])


def set_col(board, col):
    for row in range(len(board)):
        board[row][col] = 1


class Solution:
    def setZeroes(self, matrix: List[List[int]]) -> None:
        board = [[0] * len(matrix[0]) for _ in range(len(matrix))]
        for row in range(len(matrix)):
            for col in range(len(matrix[row])):
                if matrix[row][col] == 0:
                    set_row(board, row)
                    set_col(board, col)
        for row in range(len(matrix)):
            for col in range(len(matrix[row])):
                if board[row][col] == 1:
                    matrix[row][col] = 0

2차원 배열을 하나 더 만든 뒤 입력된 배열을 순회하면서 0의 위치를 함수를 사용해 마킹했다.

이후 한번 더 순회하면서 마킹된 위치의 row, col의 값을 0으로 바꿔줬다.

 

문제 요구 사항이 2차원 배열 내부에서 해결하라고 되어있었던 것 같은데... 잘 모르겠다.

'Algorithm' 카테고리의 다른 글

1365. How Many Numbers Are Smaller Than the Current Number  (0) 2021.07.09
207. Course Schedule  (0) 2021.07.06
128. Longest Consecutive Sequence  (0) 2021.07.01
11. Container With Most Water  (0) 2021.06.30
96. Unique Binary Search Trees  (0) 2021.06.27
profile

Zero to Hero

@Doljae

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!