// C#
static void Main(string[] args)
{
// 예제
nt[] cost = { 1, 100, 1, 1, 1, 100, 1, 1, 100, 1 };
//int[] cost = { 10, 15, 20 };
//int[] cost = { 1, 2, 3, 4, 5, 6, 7 };
int answer = minCost(cost);
Console.WriteLine(answer);
}
public static int minCost(int[] cost)
{
int case1 = 0;
int case2 = 0;
int current;
for (int i = cost.Length - 1; i >= 0; --i)
{
// 뒤에서 앞으로 오면서 현재 계단의 최소 비용을 계산
current = cost[i] + Math.Min(case1, case2);
case2 = case1;
case1 = current;
Console.WriteLine("current : " + current);
Console.WriteLine("case2 : " + case2);
Console.WriteLine("case1 : " + case1);
}
return Math.Min(case1, case2);
}