๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€,c++] 11048๋ฒˆ - ์ด๋™ํ•˜๊ธฐ

by dkswnkk 2021. 10. 26.

 

 

11048๋ฒˆ: ์ด๋™ํ•˜๊ธฐ

์ค€๊ทœ๋Š” N×M ํฌ๊ธฐ์˜ ๋ฏธ๋กœ์— ๊ฐ‡ํ˜€์žˆ๋‹ค. ๋ฏธ๋กœ๋Š” 1×1ํฌ๊ธฐ์˜ ๋ฐฉ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๊ณ , ๊ฐ ๋ฐฉ์—๋Š” ์‚ฌํƒ•์ด ๋†“์—ฌ์ ธ ์žˆ๋‹ค. ๋ฏธ๋กœ์˜ ๊ฐ€์žฅ ์™ผ์ชฝ ์œ— ๋ฐฉ์€ (1, 1)์ด๊ณ , ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ์•„๋žซ ๋ฐฉ์€ (N, M)์ด๋‹ค. ์ค€๊ทœ๋Š”

www.acmicpc.net


#include <iostream>
using namespace std;

int dp[1001][1001];
int arr[1001][1001];

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int n,m; cin>>n>>m;

    for(int i=0; i<n; i++){
        for(int k=0; k<m; k++){
            cin>>arr[i][k];
        }
    }
    dp[0][0]=arr[0][0];
    for(int i=0; i<n; i++){
        for(int k=0; k<m; k++){
            if(i==0&&k==0) continue;
            dp[i][k]=max(max(dp[i][k],dp[i-1][k]+arr[i][k]),max(dp[i][k-1]+arr[i][k],dp[i-1][k-1]+arr[i][k]));

        }
    }
    cout<<dp[n-1][m-1];
}

๋Œ“๊ธ€