JAVA
백준 9465
Son
2022. 1. 18. 04:26
package Baekjoon;
import java.util.Scanner;
public class Number9465 {
static int dp[][] , cost[][]; //dp=최대값이 저장될 배열 cost=비용이 저장될 배열
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt(); // 테스트 케이스
for(int i=0;i<t; i++) {
int n = sc.nextInt();
cost = new int [2][n+1];
dp = new int[2][n+1];
for(int j = 0;j < 2;j++) {
for(int k=1;k<=n;k++) {
cost[j][k] = sc.nextInt(); //비용입력
}
}
//0번째 1번째 행의 열은 초기화를 시켜준다
dp[0][1] = cost[0][1];
dp[1][1] = cost[1][1];
for(int k=2;k<=n;k++) {
dp[0][k] = Math.max(dp[1][k-1], dp[1][k-2]+cost[0][k]);
dp[1][k] = Math.max(dp[0][k-1], dp[0][k-2]+cost[1][k]);
}
System.out.println(Math.max(dp[0][n], dp[1][n])); //n번째 최댓값을 받은후 각 행의 최대값을 비교한 후에 출력
}
}
}