๋ฌธ์
์ฝ๋
#include <iostream>
using namespace std;
int arr[501][501];
int dp[501][501];
int ans;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int N; cin>>N;
for(int i=1; i<=N; i++){
for(int k=0; k<i; k++){
cin>>arr[i-1][k];
}
}
dp[0][0] = arr[0][0];
ans = dp[0][0];
for(int i=1; i<N; i++){
for(int k=0; k<N; k++){
if(k==0) dp[i][k] = dp[i-1][k] + arr[i][k];
else if(k==N-1) dp[i][k] = dp[i-1][k-1] + arr[i][k];
else dp[i][k] = max(dp[i-1][k-1]+arr[i][k],dp[i-1][k]+arr[i][k]);
ans = max(ans, dp[i][k]);
}
}
cout<<ans;
}
ํ์ด
ํ์ฌ ์ธต์ ์ ์ชฝ์ ์ผ์ชฝ ๋๋ ๋๊ฐ์ ์ค๋ฅธ์ชฝ์ ์๋ ๊ฒ ์ค์์ ์ ํํ์ฌ ๋ง๋ค์ด ๋ผ ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ์ถ๋ ฅํ๋ ๊ฒ์ ๋๋ค.
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
ํ์ง๋ง ์ ๋ ฅ์ ์๋์ ๊ฐ์ด ์ฃผ์ด์ง๋๋ค.
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
๋ฐ๋ผ์ ์๋์ ๊ฐ์ ์ ํ์์ ์ธ์ ๋งจ ์ฒ์๊ณผ ๋งจ ๋ ๊ทธ๋ฆฌ๊ณ ๋๋จธ์ง ์ผ ๋์ ๊ฒฝ์ฐ๋ฅผ ๋๋์ด ์ ํ์์ ์ธ์ ํด๊ฒฐํ ์ ์์ต๋๋ค.
if(k==0) dp[i][k] = dp[i-1][k] + arr[i][k];
else if(k==N-1) dp[i][k] = dp[i-1][k-1] + arr[i][k];
else dp[i][k] = max(dp[i-1][k-1] + arr[i][k], dp[i-1][k] + arr[i][k]);
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 1331๋ฒ - ๋์ดํธ ํฌ์ด (0) | 2022.05.08 |
---|---|
[๋ฐฑ์ค,c++] 1268๋ฒ - ์์ ๋ฐ์ฅ ๊ตฌํ๊ธฐ (0) | 2022.05.07 |
[๋ฐฑ์ค,c++] 17829๋ฒ - 222-ํ๋ง (0) | 2022.04.30 |
[๋ฐฑ์ค,c++] 16926๋ฒ - ๋ฐฐ์ด ๋๋ฆฌ๊ธฐ1 (0) | 2022.04.04 |
[๋ฐฑ์ค,c++] 18511๋ฒ - ํฐ ์ ๊ตฌ์ฑํ๊ธฐ (0) | 2022.04.03 |
[๋ฐฑ์ค,c++] 1969๋ฒ - DNA (0) | 2022.03.31 |
๋๊ธ