백준/1000 ~

[백준 / C#] 2579 : 계단 오르기

무오_ 2023. 7. 30. 22:27
using System;

class Stair
{
    private int[] cost = new int[301];
    internal int this[int index]
    {
        get { return cost[index]; }
        set { cost[index] = value; }
    }
}

class Program
{
    static int t = int.Parse(Console.ReadLine());
    static int[] dp = new int[301];
    static Stair stair = new Stair();
    static void Main(string[] args)
    {
        for (int i = 0; i < t; i++)
            stair[i] = int.Parse(Console.ReadLine());
        dp[0] = stair[0];
        dp[1] = stair[0]+stair[1];
        dp[2] = Math.Max(stair[0] + stair[2], stair[1] + stair[2]);
        for (int i = 3; i < t; i++)
            dp[i] = Math.Max(dp[i - 3] + stair[i - 1] + stair[i], dp[i - 2] + stair[i]);
        Console.WriteLine(dp[t - 1]);
    }
}