반응형
삼각형 문제랑 같다.
dp 문제이다
#include <iostream>
#include <vector>
#define MAX(a, b) ((a >= b) ? a : b)
using namespace std;
int solution(vector<vector<int> > land)
{
int answer = 0;
int row = land.size();
int left, right;
vector<vector<int>> dp(land.begin(), land.end());
for(int i = 1; i < row; i++) {
for(int j = 0; j < 4; j++) {
int max = 0;
for(int k = 0; k < 4; k++) {
if(k != j && max < dp[i - 1][k]) {
max = dp[i - 1][k];
}
}
dp[i][j] += max;
answer = MAX(answer, dp[i][j]);
}
}
return answer;
}
반응형
'[알고리즘 + 자료구조] > [프로그래머스]' 카테고리의 다른 글
프로그래머스 모음 사전 C++ (0) | 2023.08.10 |
---|---|
프로그래머스 택배 상자 C++ (0) | 2023.08.10 |
프로그래머스 예상 대진표 (0) | 2023.08.09 |
프로그래머스 영어 끝말잇기 (0) | 2023.08.08 |
프로그래머스 H-index (0) | 2023.08.08 |