#include <stdio.h>
int board[100][100];
int maxboard[100][100];
int n;
int maxresult(){
maxboard[0][0]=board[0][0];
for(int i=0; i<n;i++)
for(int j=0;j<i+1;j++){
if(i==0) maxboard[i][j]=maxboard[i-1][j]+board[i][j];
else if(board[i-1][j]=='\0') maxboard[i][j]=maxboard[i-1][j-1]+board[i][j];
else{
int temp1=maxboard[i-1][j-1]+board[i][j];
int temp2=maxboard[i-1][j]+board[i][j];
if(temp1>temp2) maxboard[i][j]= temp1;
else maxboard[i][j]=temp2;
}
}
/*for(int i=0; i<n;i++){
for(int j=0;j<i+1;j++)
printf("%d ",maxboard[i][j]);
printf("\n");
}
printf("\n");
*/
int max=0;
for(int i=0;i<n;i++){
if(max<maxboard[n-1][i]) max=maxboard[n-1][i];
}
return max;
}
int main(){
int T;
scanf("%d",&T);
while(T--){
scanf("%d",&n);
for(int i=0; i<n;i++)
for(int j=0;j<i+1;j++)
scanf("%d",&board[i][j]);
printf("%d\n",maxresult());
}
}
입력값을 board 배열에 저장 하였구요.
maxborad 라는 배열에 각 (y,x)에 들어갈 수 있는 최댓값을 저장하였습니다.
그래서 마지막 줄(n-1)에서 최댓값을 찾아서 출력하는 형식으로 해보았습니다.
예제 입력에서도 잘 돌아가고 시간상으로도 큰 문제가 없어보이는데 어느 점이 문제인지 지적해 주시면 감사하겠습니다.
blue5323
입력값을 board 배열에 저장 하였구요.
maxborad 라는 배열에 각 (y,x)에 들어갈 수 있는 최댓값을 저장하였습니다.
그래서 마지막 줄(n-1)에서 최댓값을 찾아서 출력하는 형식으로 해보았습니다.
예제 입력에서도 잘 돌아가고 시간상으로도 큰 문제가 없어보이는데 어느 점이 문제인지 지적해 주시면 감사하겠습니다.
10년 전