746. Min Cost Climbing Stairs

Doyeon Kim·2022년 8월 6일

코딩테스트 공부

목록 보기
100/171

문제 링크 : https://leetcode.com/problems/min-cost-climbing-stairs/


계단 하나를 오를때 비용이 발생하고, 한번에 하나 혹은 두개의 계단을 오를 수 있다.
[10, 15, 20] 이면 15만 지불하고 모든 계단을 다 오를 수 있는 것인데 가장 최소의 비용을 지불하고 계단을 전부 오르려면 어떻게 해야하는가?


메모리 사용을 최소화하는(아마도..?) 방법중에

[10,15,20]에 0을 추가한다고 가정하고 15부터 시작한다고 하면( [10,15,20,0])
(15+20) 또는 (15+0)을 선택할 수 있다
이중에 가장 최소값은 15(15+0)이기 때문에 이를 반환하면 풀 수 있는 문제이다..

class Solution:
    def minCostClimbingStairs(self, cost: List[int]) -> int:
        cost.append(0)
        
        for i in range(len(cost)-3,-1,-1):
            cost[i] += min(cost[i+1], cost[i+2])
        return min(cost[0], cost[1]) 

22.10.04
복습

profile
성장하고 도전하는 개발자. 프로그래밍 좋아하세요?

0개의 댓글