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번째 최댓값을 받은후 각 행의 최대값을 비교한 후에 출력

}

}

}