File tree Expand file tree Collapse file tree 1 file changed +40
-3
lines changed Expand file tree Collapse file tree 1 file changed +40
-3
lines changed Original file line number Diff line number Diff line change 7
7
8
8
Time Complexity: O(m*n)
9
9
- m은 행, n은 열을 의미
10
- - 0 찾기 - O(m*n)
11
- - 행과 열 변환 - O(m*n)
10
+ - 0 찾기: O(m*n)
11
+ - 행과 열 변환: O(m*n)
12
12
13
13
Space Complexity: O(m*n)
14
14
- zeros 배열이 최대 m*n 크기까지 저장 가능
15
15
16
16
풀이 방법:
17
17
1. 0 위치 저장
18
18
2. 저장된 0의 행과 열을 모두 0으로 변환
19
- 3. 주의점 - 행렬 값 탐색과 변경을 동시에 수행하면 원래 어떤 값이 0이었는지 구분하기 어려워짐
19
+ 3. 주의점: 행렬 값 탐색과 변경을 동시에 수행하면 원래 어떤 값이 0이었는지 구분하기 어려워짐
20
20
"""
21
21
22
22
class Solution :
@@ -36,3 +36,40 @@ def setZeroes(self, matrix: List[List[int]]) -> None:
36
36
matrix [r ][i ] = 0
37
37
for i in range (len (matrix )):
38
38
matrix [i ][c ] = 0
39
+
40
+ """
41
+ Time Complexity: O(m*n)
42
+ - 행렬 순회: O(m*n)
43
+ - 행과 열 변환: O(m*n)
44
+
45
+ Space Complexity: O(m+n)
46
+ - zero_rows: O(m)
47
+ - zero_cols: O(n)
48
+
49
+ 풀이 방법:
50
+ 1. set 자료구조를 활용하여 중복 제거
51
+ 2. 행과 열 정보를 분리 저장하여 메모리를 효율적으로 사용
52
+ 3. 행과 열을 독립적으로 처리하여 불필요한 반복 연산 제거
53
+ """
54
+
55
+ class Solution :
56
+ def setZeroes (self , matrix : List [List [int ]]) -> None :
57
+ """
58
+ Do not return anything, modify matrix in-place instead.
59
+ """
60
+ zero_rows = set ()
61
+ zero_cols = set ()
62
+
63
+ for r in range (len (matrix )):
64
+ for c in range (len (matrix [0 ])):
65
+ if matrix [r ][c ] == 0 :
66
+ zero_rows .add (r )
67
+ zero_cols .add (c )
68
+
69
+ for r in zero_rows :
70
+ for i in range (len (matrix [0 ])):
71
+ matrix [r ][i ] = 0
72
+
73
+ for c in zero_cols :
74
+ for i in range (len (matrix )):
75
+ matrix [i ][c ] = 0
You can’t perform that action at this time.
0 commit comments