해커랭크 - 2D Array - DS

phoenixKim·2021년 8월 29일
0

해커랭크

목록 보기
5/7

풀이전략

  • 규칙성을 찾는 문제이다.
    -> 모래시계 형태로 덧셈을 진행하고 안쪽의 값들만 진행하면 된다.

  • 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;
}
profile
🔥🔥🔥

0개의 댓글

관련 채용 정보