반응형
n번째 스티커를 뜯지 않았을 경우
1번째 줄을 뜯었을 경우
2번째 줄을 뜯었을 경우의 최댓값을 비교한다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int T = Integer.parseInt(br.readLine());
while (T-- > 0) {
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int[] line1 = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
int[] line2 = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
int[][] D = new int[n+1][3];
for (int i = 1; i <= n; i++) {
D[i][0] = max(D[i-1][0], D[i-1][1], D[i-1][2]);
D[i][1] = max(D[i-1][0], D[i-1][2]) + line1[i-1];
D[i][2] = max(D[i-1][0], D[i-1][1]) + line2[i-1];
}
sb.append(max(D[n][0], D[n][1], D[n][2]) + "\n");
}
System.out.print(sb);
}
static int max(int a, int b, int c) {
return Math.max(Math.max(a, b), c);
}
static int max(int a, int b) {
return Math.max(a, b);
}
}
반응형
'Algorithm' 카테고리의 다른 글
백준 10797번 10부제 [ Java ] (0) | 2021.05.07 |
---|---|
백준 1915번 가장 큰 정사각형 [ Java ] (0) | 2021.05.07 |
백준 15988번 1, 2, 3 더하기 3 [ Java ] (0) | 2021.05.03 |
백준 2225번 합분해 [ Java ] (0) | 2021.05.02 |
백준 1699번 제곱수의 합 [ Java ] (0) | 2021.05.01 |