[DP] [백준 / 1932 ] 실버 1 - 정수 삼각형 (java/자바)


package B_DP;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class boj_1932 {
static int matrix[][];
static int dp[][];
public static void main(String[] args) throws IOException {
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(r.readLine());
matrix = new int[N][N];
dp = new int[N][N];
for (int i = 0; i < N; i++) {
matrix[i] = Arrays.stream(r.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
}
dp[0][0] = matrix[0][0];
for (int i = 0; i < N - 1; i++) {
for (int j = 0; j < i + 1; j++) {
dp[i + 1][j] = Math.max(dp[i + 1][j], dp[i][j] + matrix[i + 1][j]);
dp[i + 1][j + 1] = Math.max(dp[i + 1][j + 1], dp[i][j] + matrix[i + 1][j + 1]);
}
}
int maxSum = Arrays.stream(dp[N - 1]).max().getAsInt();
System.out.println(maxSum);
}
}