https://school.programmers.co.kr/learn/courses/30/lessons/43105
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
DPDPDP
삼각형 가장자리(j : 0, N-1) => 전 row 그대로
삼각형 중앙 (j-1, j+1) => 둘 중 비교해서 최대값
import java.util.*;
class Solution {
static int N;
public int solution(int[][] triangle) {
// 거쳐간 숫자의 합이 가장 큰 경우
// 대각선 방향으로 한칸 오른쪽(1,1) 또는 왼쪽(1,0)으로 이동
N = triangle.length;
for(int i = 1; i < N; i++) {
for(int j = 0; j < i+1; j++) {
if(j == 0) {
triangle[i][j] += triangle[i-1][j];
} else if(j == i) {
triangle[i][j] += triangle[i-1][j-1];
} else {
triangle[i][j] += Math.max(triangle[i-1][j-1], triangle[i-1][j]);
}
}
}
int answer = 0;
for(int j = 0; j < N; j++) {
answer = Math.max(answer, triangle[N-1][j]);
}
return answer;
}
}
[BJ] 1107 : 리모컨 : unsolved (0) | 2025.01.15 |
---|---|
[BJ] 5052 : 전화번호 목록 (0) | 2025.01.14 |
[프로그래머스] 표 편집 (0) | 2025.01.14 |
[프로그래머스] 등산코스 정하기 (0) | 2025.01.14 |
[BJ] 14500 : 테트로미노 (0) | 2025.01.13 |