문제
링크
풀이
#include <stdio.h>
int main(void) {
int n;
int cost[1001][3];
int dp[1001][3];
scanf("%d", &n);
for (int i=1; i<=n; i++) {
scanf("%d %d %d", &cost[i][0], &cost[i][1], &cost[i][2]);
}
dp[1][0] = cost[1][0];
dp[1][1] = cost[1][1];
dp[1][2] = cost[1][2];
for (int i=2; i<=n; i++) {
dp[i][0] = cost[i][0] + (dp[i-1][1] < dp[i-1][2] ? dp[i-1][1] : dp[i-1][2]);
dp[i][1] = cost[i][1] + (dp[i-1][0] < dp[i-1][2] ? dp[i-1][0] : dp[i-1][2]);
dp[i][2] = cost[i][2] + (dp[i-1][0] < dp[i-1][1] ? dp[i-1][0] : dp[i-1][1]);
}
int min = dp[n][0] < (dp[n][1] < dp[n][2] ? dp[n][1] : dp[n][2]) ? dp[n][0] : (dp[n][1] < dp[n][2] ? dp[n][1] : dp[n][2]);
printf("%d", min);
return 0;
}