ブルーブリッジカップデジタル三角形java

1077 ワード

問題の説明
(図3.1−1)デジタル三角形を示す.プログラムを作って、上から下までのどこかの道を計算してください.
パスが通過する数値の合計を最大にします.
●各ステップは左斜線に沿って下または右斜線に沿って下に進むことができる.
●1<三角形行数≦100;
●三角形の数字は整数0,1,…99
入力フォーマット
ファイルで最初に読むのは三角形の行数です.
次に、三角形全体について説明します.
出力フォーマット
最大合計(整数)
サンプル入力
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
サンプル出力
30
 
簡単なdpは、ずっとできませんでした.長い間置いていたが,今日は見てやった.(;´д`)ゞ
 
import java.util.Scanner;

public class dt {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[][] array = new int[n+1][n+1];
        int[][] sum = new int[n+1][n+1];
        for(int i = 0;i=0;i--){
            for(int j = 0;j<=i;j++){
                sum[i][j] = array[i][j] +Math.max(sum[i+1][j],sum[i+1][j+1]);
            }
        }
        System.out.println(sum[0][0]);
    }
}