๋ฌธ์ ๋งํฌ
์ฝ๋ ์ ์ถ ๊ธฐ๋ก (๋ฉ๋ชจ๋ฆฌ ๋ฐ ์๊ฐ)
๋ฉ๋ชจ๋ฆฌ : 2676 KB
์๊ฐ : 132 ms
Code
#include <stdio.h>
#include <algorithm>
int dp[2][100001], arr[2][100001];
int main(){
int t, n, i, j;
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
for (i = 0; i <= 1; i++)
for (j = 1; j <= n; j++)
scanf("%d", &arr[i][j]);
dp[0][0] = dp[1][0] = 0;
dp[0][1] = arr[0][1];
dp[1][1] = arr[1][1];
for (i = 2; i <= n; i++) {
dp[0][i] = std::max(dp[1][i - 1], dp[1][i - 2]) + arr[0][i];
dp[1][i] = std::max(dp[0][i - 1], dp[0][i - 2]) + arr[1][i];
}
printf("%d\n", std::max(dp[0][n], dp[1][n]));
}
return (0);
}
C++
๋ณต์ฌ
๋ฉ๋ชจ
ํ์ฌ ์คํฐ์ปค์์ ์ ํ์ ํ ์ ์๋ ์คํฐ์ปค๋ 1์นธ ์ค๋ฅธ์ชฝ ๋๊ฐ์ or 2์นธ ์ค๋ฅธ์ชฝ ๋๊ฐ์ ์ ์ ํํ ์ ์๋ค
๊ทธ ์ค์์ ์ต๋๊ฐ์ด ๋๋ ๊ฐ์ ์ ํํ๋ ๊ฒ์ด good
๊ฐ ์์น์์์ ์ต๋๊ฐ์ ๊ฐ์ง๋ dp ๋ฐฐ์ด์ ์ถ๊ฐ๋ก ์์ฑ
<๊ณต์>
0๋ฒ์งธ ์ค
1๋ฒ์งธ ์ค
2๋ฒ์งธ ~ n๋ฒ์งธ ๊น์ง ์์๋๋ก ์์ ๊ณต์์ ๋์
<์ด๊ธฐํ>
dp[0][0] = 0;
dp[1][0] = 0;
dp[0][1] = arr[0][1];
dp[1][1] = arr[1][1];
C++
๋ณต์ฌ
์ฐธ์กฐ
โข