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 |