https://www.acmicpc.net/problem/1932
1932번: 정수 삼각형
첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다.
www.acmicpc.net
해석 및 팁
이 문제는 위에서부터 다이내믹프로그래밍을 이용하면 되는 문제입니다. 점화식이 dp [i][j] = Max(dp[i-1][j] , dp[i-1][j-1] ) + arr [i][j] 이므로 먼저 arr배열에 값을 입력받은 후 dp배열의 값을 구하면 됩니다 그 후 dp [n]의 최댓값을 구하면 됩니다.
Java 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int max = -1;
int n = sc.nextInt();
int[][] arr = new int[n + 1][n + 1];
int[][] dp = new int[n + 1][n + 1];
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= i; j++) arr[i][j] = sc.nextInt();
}
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= i; j++) dp[i][j] = Math.max(dp[i - 1][j], dp[i - 1][j - 1]) + arr[i][j];
}
for(int i = 1; i <= n; i++) max = Math.max(max, dp[n][i]);
System.out.println(max);
}
}
'백준' 카테고리의 다른 글
백준 2156 포도주 시식(Java) (0) | 2023.02.14 |
---|---|
백준 1697 숨바꼭질(Java) (0) | 2023.02.14 |
백준 1931 회의실배정(Java) (0) | 2023.02.14 |
백준 1149 RGB거리(Java) (0) | 2023.02.13 |
백준 2067 단지번호붙이기(Java) (0) | 2023.02.13 |