๋์ ํ์ด
var minCostClimbingStairs = function(cost) {
const goalStair = cost.length
let DP=[]
DP[0] = 0;
DP[1] = 0;
DP[2] = Math.min(cost[0],cost[1])
for (let i=3 ; i<= goalStair ; i++){
let one = DP[i-2]+cost[i-2];
let two = DP[i-1]+cost[i-1]
DP[i] = Math.min(one,two)
console.log(i,DP)
}
return DP[goalStair]
};
cost [10, 15, 20] ์ผ๋ ๋๋ DP[3] ์ ๊ตฌํ ๊ฒ์ด๋ค.
cost ์ฃผ์ด์ง ๋น์ฉ์ด ํ๊ธฐ๋ ๊ณ๋จ์ ์ค๋ฅด๋ ์ต์ ๋น์ฉ์ ๊ตฌํ๋ ๊ฒ์ด๋ค.
DP[n] ์ n ๊ณ๋จ์ ๋์ฐฉํ๊ธฐ ์ํด ํ์ํ ์ต์๋น์ฉ์ด๋ผ๊ณ ๊ฐ์ ํ๋ค.
๊ณ๋จ์ 1,2 ๋จ์๋ก ์ค๋ฅผ ์ ์๊ธฐ ๋๋ฌธ์ DP[0], DP[1]์ ์ค๋ฅด๋ ๋ฐ๋ ๋น์ฉ์ด ๋ค์ง ์๋๋ค.
DP[0] = 0
DP[1] = 0
DP[2]์ ์ค๋ฅด๋ ๋น์ฉ์ ์๋ ์ค ์ต์๊ฐ์ ๊ฐ์ง๊ฒ ๋๋ค .
min( 1๋ฒ์งธ ๊ณ๋จ์ ์ต์๋น์ฉ, 2๋ฒ์งธ ๊ณ๋จ์ ์ต์๋น์ฉ)
DP[3] = min( DP[1] + cost[1] , DP[2]+cost[2] )
DP[3] ์ min( DP[1]์ต์๋น์ฉ+2๋ฒ์งธ ๊ณ๋จ์ ์ต์๋น์ฉ , DP[2]์ต์๋น์ฉ+ 3๋ฒ์งธ ๊ณ๋จ์ ์ต์๋น์ฉ )
์ด์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๊ณ๋จ์ ์ต์๋ฅผ ๊ตฌํด์ฃผ๋ฉด ์ฑ๊ณต!
๊ด๋ จ ์๊ณ ๋ฆฌ์ฆ ํ์ต์ ์ฝ๋์๋ ํ๋ก๊ทธ๋๋ฐ์ DP ๊ฐ์๋ฅผ ์ฐธ์กฐ
'๐ ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[LeetCode] 28_ImplementstrStr -JavaScript (0) | 2021.12.02 |
---|---|
[LeetCode] 64 _ minimumPathSum (4) | 2021.11.23 |
[codility] JS Lv4-3 MaxCounter (0) | 2021.09.24 |
[codility] JS Lv4-1 ForgRiverOne (0) | 2021.09.18 |
[codility] JS Lv3-3 TapeEquilibrium (0) | 2021.09.17 |
๋๊ธ