반응형
https://school.programmers.co.kr/learn/courses/30/lessons/43105
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
Idea
아래에서 위로 올라가면서 계산하는 방식으로 풀어야겠다고 생각했다. 0번째 줄에서 1번째 줄의 두 경로 중 큰 수 선택, 1번째 줄에서 2번째 줄의 두 경로 중 큰 수 선택 ... length - 2 번째 줄에서 length - 1번째 줄의 두 경로 중 큰 수 선택 순으로 이어진다. 즉, 맨 아래 줄은 계산할 필요가 없으니까 triangle.length - 2 부터 계산했다. 현재 위치에서 두 경로 중 더 큰 경로를 선택하다보면, triangle[0][0] 에 최종 경로 합이 저장된다.
Code
class Solution {
public int solution(int[][] triangle) {
for (int r = triangle.length - 2; r >= 0; r--) {
for (int c = 0; c <= r; c++) {
triangle[r][c] += Math.max(triangle[r + 1][c], triangle[r + 1][c + 1]);
}
}
return triangle[0][0];
}
}반응형
'Dev > Programmers' 카테고리의 다른 글
| [프로그래머스] 등굣길 (Java) (2) | 2025.02.07 |
|---|---|
| [프로그래머스] 카펫 (Java) (2) | 2025.01.17 |
| [프로그래머스] 2021 KAKAO BLIND RECRUITMENT 합승 택시 요금 (Java) (1) | 2025.01.17 |
| [프로그래머스] 소수 찾기 (Java) (0) | 2025.01.14 |
| [프로그래머스] 모음사전 (Java) (0) | 2025.01.08 |