[다이나믹프로그래밍] 백준 : 스티커(9465번)

import java.lang.Math;
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
int cases, n;
Scanner in = new Scanner(System.in);
cases = in.nextInt();
for(int k = 0; k<cases; k++) {
n = in.nextInt();
//initial
int[][] table = new int[2][n];
for(int i = 0; i<2; i++) {
for(int j = 0; j<n; j++) {
table[i][j] = in.nextInt();
}
}
int[][] dp = new int[2][n];
dp[0][0] = table[0][0];
dp[1][0] = table[1][0];
dp[0][1] = dp[1][0] + table[0][1];
dp[1][1] = dp[0][0] + table[1][1];
for(int i = 2; i<n; i++){
dp[0][i] = Math.max(dp[1][i-1], dp[1][i-2])+table[0][i];
dp[1][i] = Math.max(dp[0][i-1], dp[0][i-2])+table[1][i];
}
System.out.println(Math.max(dp[0][n-1], dp[1][n-1]));
}
}
}
view raw Main.java hosted with ❤ by GitHub

댓글

가장 많이 본 글