각층을 1차원 배열로 지정하고 전체 삼각형을 2차원 배열로 바라본다 할때
n층의 i번째 배열은 d[n-1][i-1], d[n-1][i] 중 최대값과 합한 값이다.
단 첫번째 요소와 마지막 요소는 경로가 1가지 뿐이다.
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int max = 0;
int[][] array = new int[n][n];
int[][] d = new int[n][n];
array[0][0] = scan.nextInt();
d[0][0] = array[0][0];
max = d[0][0];
for(int i = 1; i<n; i++) {
for(int j = 0; j<=i; j++) {
array[i][j] = scan.nextInt();
if(j == 0) d[i][j] = d[i-1][j];
else if(j == i) d[i][j] = d[i-1][j-1];
else d[i][j] = Math.max(d[i-1][j-1], d[i-1][j]);
d[i][j] += array[i][j];
if(d[i][j] > max)
max = d[i][j];
}
}
System.out.println(max);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[BaekJoon] 백준 2193 이친수 -Java (0) | 2020.05.17 |
---|---|
[BaekJoon] 백준 2579. 계단 오르기 - Java (0) | 2020.05.14 |
[BaekJoon] 백준 11726 2xn 타일링- Java (0) | 2020.05.05 |
[Baekjoon] 백준 1463번. 1로 만들기- Java (0) | 2020.05.05 |
[Baekjoon] 백준 9095번 1, 2, 3 더하기- Java (0) | 2020.05.05 |