728x90
[백준] 스티커 (9465번 JAVA) (!) / 401 - 다이나믹 프로그래밍 1 (연습)
[접근 방법]
(0 , 0) 을 선택한다면,
선택 가능한 곳은 (1, 2) 와 (1, 3) 이다.
※ (1 , 3) 보다 뒤 쪽을 선택한다면 최대값을 만들 수 없다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
for(int i=0; i<T; i++){
// (1 ≤ n ≤ 100,000)
int N = Integer.parseInt(br.readLine());
int[][] point = new int[2][N+1];
int[][] DP = new int[2][N+1];
for(int j=0; j<2; j++){
StringTokenizer st = new StringTokenizer(br.readLine());
for(int k=1; k<=N; k++){
point[j][k] = Integer.parseInt(st.nextToken());
}
}
DP[0][1] = point[0][1];
DP[1][1] = point[1][1];
for(int j=2; j<=N; j++){
DP[0][j] = Math.max( DP[1][j-1] , DP[1][j-2] ) + point[0][j];
DP[1][j] = Math.max( DP[0][j-1] , DP[0][j-2] ) + point[1][j];
}
bw.write( Math.max(DP[0][N], DP[1][N]) + "\n");
}
bw.flush();
bw.close();
}
}
728x90
'백준 > DP' 카테고리의 다른 글
[백준] 정수 삼각형 (1932번 JAVA) / 401 - 다이나믹 프로그래밍 1 (연습) (1) | 2023.01.20 |
---|---|
[백준] 포도주 시식 (2156번 JAVA) (!) / 401 - 다이나믹 프로그래밍 1 (연습) (0) | 2023.01.19 |
[백준] 오르막 수 (11057번 JAVA) (!) / 401 - 다이나믹 프로그래밍 1 (연습) (1) | 2023.01.19 |
[백준] 동물원 (1309번 JAVA) / 401 - 다이나믹 프로그래밍 1 (연습) (0) | 2023.01.17 |
[백준] RGB거리 (1149번 JAVA) (!) / 401 - 다이나믹 프로그래밍 1 (연습) (0) | 2023.01.17 |