코딩테스트
[재풀이/릿코드] 62. Unique Paths
_서리__
2023. 5. 2. 21:34
var uniquePaths = function(m, n) {
let map = Array.from({ length: m }, () => new Array(n).fill(1));
let low = 1
let column = 1;
while(low<m){
while(column<n){
map[low][column] = map[low-1][column]+map[low][column-1]
column++;
}
low++;
column = 1;
}
return map[m-1][n-1]
};
여기서 치명적인 실수를 하나 했는데,
let map = new Array(m).fill(new Array(n).fill(1))
map을 이렇게 작성했다는 것이다.
이렇게 이차원 배열을 만들면 메모리에 한번만 할당되고, 그 배열의 참조값만 채워지기 때문에 while을 돌릴때마다 값이 덮어씌워졌다!!! 각행의 배열은 동일한 객체를 참조하기 때문에 한행의 값을 변경하면 다른 모든행도 그 변경을 따르게 된다.
때문에 이런경우에 2차원배열을 이렇게 작성하면 안된다.!!