alorithm/programmers

[프로그래머스] 최소 비용으로 계단 오르기

Hannana. 2024. 9. 5. 23:53
728x90
반응형

 

 

문제 파악

-dp를 이용해 구현한다.

Constraints:

  • 2 <= cost.length <= 1000
  • 0 <= cost[i] <= 999

접근 방법

-bottom-up 방식으로 구현한다.

-n(cost.length) 계단까지 최소비용을 구하기 위해 최소비용 배열 선언하여 메모하기

-마지막 계단에 해당하는 최소 비용 리턴

코드 구현

import java.util.*;
class Solution {
    public int minCostClimbingStairs(int[] cost) {
        //memoization initialization
        int[] dp = new int[cost.length+1];
        
        for(int i=2;i<=cost.length;i++){
            dp[i] = Math.min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
        }
        return dp[cost.length];
    }
}

배우게 된 점

처음에 첫 계단 혹은 둘째 계단에서 시작할 수 있으므로 둘 다 비용 계산 의미 없음

고로 2번째 계단에서부터 비용 계산~

 

 

 

 

 

반응형