Algorithm
[백준-1932번/Java] 정수 삼각형
1984
2022. 11. 16. 00:41
* dp
* 배열 형태로 최대값 저장하면서 푼다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
int[] sumList = new int[N + 1];
int[] tmpList = new int[N + 1];
int max_value = -1;
for (int i = 1; i < N + 1; i++) {
for (int j = 1; j < i + 1; j++) {
int num = in.nextInt();
if (j == 0) {
sumList[j] = num + tmpList[j];
} else if (j == i) {
sumList[j] = num + tmpList[j - 1];
} else {
sumList[j] = num + (int) Math.max(tmpList[j - 1], tmpList[j]);
}
}
for (int j = 1; j < i + 1; j++) {
tmpList[j] = sumList[j];
// 마지막줄 최댓값 확인
if (i == N ) {
max_value = Math.max(max_value, sumList[j]);
}
}
}
System.out.println(max_value);
}
}
728x90