in.add()

[2579] 계단 오르기 본문

Algorithm/BOJ

[2579] 계단 오르기

idan 2021. 10. 13. 23:15

문제 링크 : https://www.acmicpc.net/problem/2579

 

2579번: 계단 오르기

계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. <그림 1>과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점

www.acmicpc.net

 

문제 해결 방법

DP! DP다 싶으면 차근차근 시뮬레이션 해보기.

 

 

import java.util.Scanner;

public class Main {
    static int N;
    static int[] arr, dp;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        N = sc.nextInt();
        arr = new int[N + 1];
        dp = new int[N + 1];

        for (int i = 1; i <= N; i++) {
            arr[i] = sc.nextInt();
        }

        dp[1] = arr[1];
        if (N >= 2) {
            dp[2] = arr[1] + arr[2];
        }
        for (int i = 3; i <= N; i++) {
            dp[i] = Math.max(dp[i - 2] , dp[i - 3] + arr[i - 1]) + arr[i];
        }

        System.out.println(dp[N]);
    }
}

'Algorithm > BOJ' 카테고리의 다른 글

[20055] 컨베이어 벨트 위의 로봇  (0) 2021.10.15
[1991] 트리 순회  (0) 2021.10.14
[2206] 벽 부수고 이동하기  (0) 2021.10.11
[15961] 회전 초밥  (0) 2021.10.06
[1931] 회의실 배정  (0) 2021.10.02
Comments