-
[재풀이/릿코드] 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차원배열을 이렇게 작성하면 안된다.!!
'코딩테스트' 카테고리의 다른 글
코딩테스트시 주의해야할 사항 (0) 2023.05.09 [프로그래머스] 수식최대화 (0) 2023.05.03 [프로그래머스/javascript] [3차] 방금 그곡 (0) 2023.04.30 [릿코드/js] 1046. Last Stone Weight (0) 2023.04.24 [못풀었다/릿코드/javascript]. 567. Permutation in String (0) 2023.03.30