白俊2579号:階段を上る
10234 ワード
問題の説明
これは、
方法
pseudocode
A(n)=Max(A(n,1),A(n,2))A(n) = Max(A(n,1),A(n,2))A(n)=Max(A(n,1),A(n,2))
A(n,1)=Max(A(n−2,1),A(n−2,2))+VnA(n,1) = Max(A(n-2,1),A(n-2,2))+VnA(n,1)=Max(A(n−2,1),A(n−2,2))+Vn
A(n,2)=A(n−1,1)+VnA(n,2) = A(n-1,1)+VnA(n,2)=A(n−1,1)+Vn
正解
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] arr = new int[N];
for (int i = 0; i < N; i++) {
arr[i] = sc.nextInt();
}
if (N == 1) {
System.out.println(arr[N - 1]);
} else {
int[][] dp = new int[2][N];
dp[0][0] = arr[0];
dp[0][1] = arr[1];
dp[1][1] = dp[0][0] + arr[1];
for (int i = 2; i < N; i++) {
dp[0][i] = Math.max(dp[1][i - 2], dp[0][i - 2]) + arr[i];
dp[1][i] = dp[0][i - 1] + arr[i];
}
System.out.println(Math.max(dp[0][N - 1], dp[1][N - 1]));
}
}
}
Reference
この問題について(白俊2579号:階段を上る), 我々は、より多くの情報をここで見つけました https://velog.io/@qwerty1434/백준-2579번-계단-오르기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol