Skip to content

Commit 02c4246

Browse files
committed
Set Matrix Zeroes - 풀이 수정
1 parent bd409f8 commit 02c4246

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

set-matrix-zeroes/forest000014.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@
1313
1414
1515
solution 3. matrix 내에 안 쓰이는 값 찾기 (probabilistic 접근)
16-
int32 범위 내에서, 쓰이는 값보다는 안 쓰이는 값의 갯수가 압도적으로 많다.(99.999%+)
16+
int 범위 내에서, 쓰이는 값보다는 안 쓰이는 값의 갯수가 압도적으로 많다.(1 - (200 * 200 / 2^32) = 0.99999+)
1717
18-
int 범위 내의 숫자를 랜덤하게 뽑는다면, 그리고 이 행위를 10번만 반복한다면
19-
O(m * n) 시간에 상당히 높은 확률로 안 쓰이는 값(x라고 하자)을 찾을 수 있다.
20-
(틀릴 확률은 10^(-50) 정도.)
21-
matrix의 모든 원소를 순회하며, 값이 0이라면 같은 row/col에 존재하는 모든 원소(또다른 0은 제외)를 위에서 찾은 x로 바꾼 뒤에, 마지막에 한번에 모든 x를 0으로 바꾸는 식으로 풀 수 있다.
18+
matrix 내에 안 쓰이는 수를 찾을 때까지 int 범위 내의 랜덤하게 뽑는 행위를 10번만 반복해도,
19+
O(m * n) 시간에 상당히 높은 확률로 안 쓰이는 값을 찾을 수 있다.
20+
(10번 이내에 찾지 못할 확률은 10^(-50) 정도.)
21+
이렇게 찾은 값을 x라고 하자. matrix의 모든 원소를 순회하며, 0인 원소가 있다면 같은 행/열에 존재하는 모든 원소(또다른 0은 제외)를 x로 바꾼 뒤에, 마지막에 한번에 모든 x를 0으로 바꾸는 식으로 풀 수 있다.
2222
2323
그러나 이 접근법의 확률은 문제의 제한 조건 m, n 범위 하에서 계산한 것이라는 한계가 있다.
24-
m, n이 꽤나 커진다면 맞출 확률이 낮아지고, 극단적으로 m = n = 2^16 = 65,536 이상이 되면, 쓸 수 없는 방법이기도 하다.
24+
m, n이 꽤나 커진다면 랜덤 추출로 안 쓰이는 값을 찾을 확률이 낮아지고, 극단적으로 m * n 2^32 이상이 되면, 쓸 수 없는 방법이기도 하다.
2525
2626
2727
solution 4. in-place marking

0 commit comments

Comments
 (0)