규칙성을 찾는 문제이다.
-> 모래시계 형태로 덧셈을 진행하고 안쪽의 값들만 진행하면 된다.
max값을 구하는 것인데, 모든 value가 음수일 경우에 대비를 해야한다.
int hourglassSum(vector<vector<int>> arr) {
const int row = arr.size();
const int col = arr[0].size();
vector<vector<int>>dp(row, vector<int>(col));
int max = INT_MIN;
for(int i = 1; i <= 4; i++)
{
for(int j = 1; j <= 4; j++)
{
dp[i][j] = arr[i - 1][j - 1] + arr[i - 1][j] + arr[i - 1][j + 1]
+ arr[i][j] + arr[i + 1][j -1] + arr[i + 1][j] + arr[i + 1][j +1];
if(max < dp[i][j])
max = dp[i][j];
}
}
return max;
}