https://www.acmicpc.net/problem/9465
코드 :
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int[][] dp;
static int[][] score;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st;
int T = Integer.parseInt(br.readLine());
while(T-- > 0){
int n = Integer.parseInt(br.readLine());
// dp[i][n]는 n번째 열에서 i의 상황에 n번째 열까지 스티커 점수합의 최댓값
// 0: 위 떼는 경우, 1: 아래 떼는 경우
dp= new int[2][n+1];
// score[][]입력값 받는 배열
// 0이 위, 1이 아래
score= new int[2][n+1];
for (int i = 0; i < 2; i++) {
st = new StringTokenizer(br.readLine());
for (int j = 1; j <= n; j++) {
score[i][j] = Integer.parseInt(st.nextToken());
}
}
dp[0][1] = score[0][1]; // 위에 인덱스0 값 초기화
dp[1][1] = score[1][1]; // 아래 인덱스0 값 초기화
for (int i = 2; i <= n; i++) {
dp[0][i] = Math.max(dp[1][i - 2], dp[1][i-1]) + score[0][i];
dp[1][i] = Math.max(dp[0][i - 2], dp[0][i-1]) + score[1][i];
}
sb.append(Math.max(dp[0][n], dp[1][n])).append("\n");
}
System.out.println(sb);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
백준 11055번 - 가장 큰 증가 부분 수열 (Java) (0) | 2022.04.03 |
---|---|
백준 1932번 - 정수 삼각형 (Java) (0) | 2022.04.03 |
백준 11057번 - 오르막 수 (Java) (0) | 2022.03.30 |
백준 1309번 - 동물원 (Java) (0) | 2022.03.29 |
백준 1149번 - RGB거리 (Java) (0) | 2022.03.29 |
댓글