dynamicProgramming_직사각형에서총경로수구하기

Sep 30th 2020 by jyoon

문제

해결 방법

CODE

function numOfPaths(m, n) {
  var cache = Array(m).map(v => Array(n))

  for (var i = 0; i < m; i++) {
    cache[i][0] = 1
  }
  for (var j = 0; j < n; j++) {
    cache[0][j] = 1
  }

  //# step1
  // 나머지 셀
  for (var i = 1; i < m; i++) {
    for (var i = 1; i < m; i++) {
      cache[i][j] = cache[i - 1][j] + cache[i][j - 1] // cache[i][j]기준 위 셀 + cache[i][j]기준 왼쪽 셀
    }
    //# step2,3
  }

  return cache[m - 1][n - 1]
}

console.log(numOfPaths(2, 3))

2중 반복문 이후 최종 cache 배열(상향식 접근방법)

numOfPaths(2, 3) 호출이후 cache 배열의 변화 과정

# step1
[1, 1, 1, 1]
[1, 0, 0, 0]
[1, 0, 0, 0]

# step2
[1, 1, 1, 1]
[1, 2, 3, 4]
[1, 0, 0, 0]

# step3
[1, 1, 1,  1]
[1, 2, 3,  4]
[1, 3, 6, 10]