문제 이해
추후에 기회가 되면 상세한 해답을 달 예정이다.
소스코드
#include <stdio.h>
#include <string.h>
#define MAX(a,b) (((a)>(b))? (a):(b))
int main(void)
{
int t,n;
int ans;
int dp[2][100001]={0,};
int arr[2][100001]={0,};
scanf("%d", &t);
while (t--)
{
scanf("%d",&n);
for(int i=0; i<2; i++)
{
for(int j=1; j<n+1; 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 (int i=0; i<n+1; i++)
{
dp[0][i]=MAX(dp[1][i-1],dp[1][i-1])+arr[0][i];
dp[1][i]=MAX(dp[0][i-1],dp[0][i-2])+arr[1][i];
}
}
printf("%d",MAX(dp[0][n],dp[1][n]));
return 0;
}
'C C++ > C C++ 백준' 카테고리의 다른 글
C언어 백준 11055번 가장 큰 증가 부분 수열 (0) | 2022.06.25 |
---|---|
C언어 백준 11053번 두 수 비교하기 (0) | 2022.06.25 |
C언어 백준 9465번 스티커 (0) | 2022.06.10 |
C언어 백준 2193번 이친수 (0) | 2022.06.10 |
C언어 백준 11057번 오르막 수 (0) | 2022.06.10 |
댓글