์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

Algorithm๐Ÿคฎ

์ ‘๊ทผ ์กฐ์ฐจ๋ชปํ•˜์˜€๋‹ค. ๋‹ค๋งŒ ๋‚ด๊ฐ€ ๋ฌธ์ œ๋ฅผ ์กฐ๊ธˆ ์ด์ƒํ•˜๊ฒŒ ์ƒ๊ฐํ•œ๊ฒƒ๊ฐ™๋‹ค.
cata3


๋ฌธ์ œ์˜ ์˜๋„๋Š” N x M ์˜ ๊ทธ๋ฆฌ๋“œ๋ฉด N๋ฒˆ์˜ ์˜ค๋ฅธ์ชฝ์ด๋™ M๋ฒˆ์˜ ์•„๋ž˜์ชฝ์ด๋™์˜ ์ตœ์†Œ๊ฐ’์„ ์›ํ•˜๋Š”๊ฒƒ์ด์ง€๋งŒ

๋‚˜๋Š” ์–ด๋–ป๊ฒŒ ๊ฐ€๋“  ์ตœ์†Ÿ๊ฐ’์ด ๋‚˜์˜ค๊ฒŒ๋งŒ ์ด๋™ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ดํ•ดํ–ˆ๋‹ค.

[1,9,9,1,1,1,1]

[1,1,1,1,1,9,1]

[1,9,9,9,9,1,1]

[1,9,9,1,1,1,1]

์ด๋Ÿฌํ•œ ๋ฐฐ์—ด์€ 1์˜ ๊ฐ’์œผ๋กœ๋งŒ ์ด๋™ํ•˜์—ฌ 12์˜ ๊ฐ’์ด ๋‚˜์™€์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ

๋ฌธ์ œ์—์„œ ์›ํ•˜๋Š”๊ฐ’์€ 7๋ฒˆ์˜ ์˜ค๋ฅธ์ชฝ์ด๋™ 4๋ฒˆ์˜ ์•„๋ž˜์ชฝ์ด๋™์œผ๋กœ ์ตœ์†Ÿ๊ฐ’ 18์ด ์ •๋‹ต์ด์—ˆ๋‹ค.



const minPathSum = (grid) => {
  for (let i = 1; i < grid.length; i++) {
    grid[i][0] += grid[i - 1][0];
  }

  for (let i = 1; i < grid[0].length; i++) {
    grid[0][i] += grid[0][i - 1];
  }

  for (let i = 1; i < grid.length; i++) {
    for (let j = 1; j < grid[0].length; j++) {
      grid[i][j] += Math.min(grid[i][j - 1], grid[i - 1][j]);
    }
  }

  return grid[grid.length - 1][grid[0].length - 1];
};



์ฝ”๋“œํ•ด์„ค

1๋ฒˆ์งธ for๋ฌธ ๊ฐ ์ธ๋ฑ์Šค์˜ 0๋ฒˆ์งธ ๊ฐ’์„ ์ค‘์ฒฉํ•˜์—ฌ ๋๊นŒ์ง€ ๊ณ„์‚ฐํ•œ๋‹ค.

2๋ฒˆ์งธ for๋ฌธ 0๋ฒˆ์งธ์ธ๋ฑ์Šค ๊ฐ€๋กœ์—ด์˜ ๊ฐ’์„ ์ค‘์ฒฉํ•˜์—ฌ ๋๊นŒ์ง€ ๊ณ„์‚ฐํ•œ๋‹ค.

3๋ฒˆ์งธ for๋ฌธ (1,2) (1,3)โ€ฆ.(3,1) (3,2)โ€ฆ. (N,M)๊นŒ์ง€ ํ•ด๋‹น ์ธ๋ฑ์Šค์˜ ์œ„์ชฝ ์™ผ์ชฝ๊ฐ’์ค‘ ์ž‘์€๊ฐ’์„ ๋”ํ•˜์—ฌ ์ค‘์ฒฉํ•œ๋‹ค.

๋~~~~

์—…๋ฐ์ดํŠธ: