문제: https://school.programmers.co.kr/learn/courses/30/lessons/43105
class Solution {
static int[][] t;
public int solution(int[][] triangle) {
t = triangle;
for(int i = triangle.length - 1 ; i > 0; i--){
for(int j = 0; j < triangle[i].length-1; j++){
calc(i,j);
}
}
return triangle[0][0];
}
public void calc(int n, int k){
int num1 = t[n][k] + t[n-1][k];
int num2 = t[n][k+1] + t[n-1][k];
if(num1 >= num2 ){
t[n-1][k] = num1;
}else{
t[n-1][k] = num2;
}
}
}
완전 탐색 중에서도 효율적인 방법만 탐색하는 DP를 공부해보았다! 뿌듯했다!
참 쉽쥬잉~?~?