문제
https://programmers.co.kr/learn/courses/30/lessons/43105
풀이
dp 문제로 각 위치마다 최대값을 저장해나간다.
마지막 행에서 가장 큰 값이 답이된다.
2021.11.08 - [Problem Solving/BOJ] - [BOJ 1932] 정수 삼각형 (Java)
소스코드
class Solution {
public int solution(int[][] triangle) {
int[][] dp = new int[triangle.length][triangle.length];
dp[0][0] = triangle[0][0];
for(int i = 1; i < triangle.length; i++){
for(int j = 0; j <= i; j++){
dp[i][j] = triangle[i][j];
if(j == 0){
dp[i][j] += dp[i-1][j];
} else if (j == i){
dp[i][j] += dp[i-1][j-1];
} else {
dp[i][j] += Math.max(dp[i-1][j], dp[i-1][j-1]);
}
}
}
int max = 0;
for(int i = 0; i < triangle.length; i++){
max = Math.max(dp[triangle.length-1][i], max);
}
return max;
}
}
'💡Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스] 숫자 게임 (Java) (0) | 2021.11.11 |
---|---|
[프로그래머스] 땅따먹기 (Java) (0) | 2021.11.09 |
[프로그래머스] 기지국 설치 (Java) (0) | 2021.11.07 |
[프로그래머스] 가장 먼 노드 (Java) (0) | 2021.11.06 |
[프로그래머스] 등굣길 (Java) (0) | 2021.11.05 |