백준알고리즘 1932번, 숫자삼각형
Contents
피라미드 형태의 삼각형이 주어질때 아래로 내려가면서 최대의 값을 찾는 문제입니다
전략 : 별다른 전략 필요가 없네요
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
#include <stdio.h>
#include <string.h>
using namespace std;
int dp[500][500];
int main(void) {
memset(dp, -1, 0);
int t;
int max = -1;
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
scanf("%d", &t);
for (int i = 0; i < t; i++) {
for(int j=0;j<i+1;j++)
scanf("%d", &dp[i][j]);
}
for (int i = 1; i < t; i++) {
for (int j = 0; j < i + 1; j++) {
if (j == 0) {
dp[i][j] = dp[i][j] + dp[i-1][j];
}
else if (j == i) {
dp[i][j] = dp[i][j] + dp[i-1][j-1];
}
else {
dp[i][j] = dp[i][j] + (dp[i - 1][j] > dp[i - 1][j - 1] ? dp[i - 1][j] : dp[i - 1][j - 1]);
}
}
}
for (int i = 0; i < t; i++) {
if (dp[t - 1][i] > max)
max = dp[t - 1][i];
}
printf("%d\n", max);
#ifndef ONLINE_JUDGE
fclose(stdin);
fclose(stdout);
#endif
return 0;
} |
Author Jaejin Jang
LastMod 2017-12-23
License Jaejin Jang