-
[프로그래머스] 정수 삼각형알고리즘/프로그래머스 2021. 9. 15. 19:53
풀이
점화식 d[i][j]는 왼쪽 대각선 위인 d[i-1][j-1]와 오른쪽 대각선 위인 d[i-1][j] 중에서 큰 값을 triangle[i][j]와 더해준 값입니다.
d[i][j] = max(d[i-1][j-1], d[i-1][j]) + t[i][j]
코드
#include <string> #include <vector> using namespace std; int wrap(int a) { return a < 0 ? 0 : a; } int solution(vector<vector<int>> triangle) { int answer = 0; int size = triangle.size(); vector<vector<int>> d(size, vector<int>(size, 0)); for (int i = 0; i < triangle.size(); ++i) for (int j = 0; j < triangle[i].size(); ++j) d[i][j] = max(d[wrap(i - 1)][wrap(j - 1)], d[wrap(i - 1)][j]) + triangle[i][j]; for (int i = 0; i < d[size - 1].size(); ++i) answer = max(answer, d[size - 1][i]); return answer; }
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Java] 달리기 경주 (0) 2023.05.03 [프로그래머스] 순위 (0) 2021.09.16 [프로그래머스] 디스크 컨트롤러 (0) 2021.09.15 [프로그래머스] N으로 표현 (0) 2021.08.17 [프로그래머스] 가장 먼 노드 (0) 2021.08.16