https://www.acmicpc.net/problem/1149
딱히 어려운 점은 없었다.
은근히 쉬웠다. 물론 약간 헤메서 구글링을 하긴 했지만..
성공한 코드 :
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int min(int a, int b) { return (a > b) ? b : a; }
int main() {
int N;
int arr1[1000][3];
int arr2[1000][3];
scanf("%d", &N);
for (int i = 0; i < N; i++) {
scanf("%d %d %d", &arr1[i][0], &arr1[i][1], &arr1[i][2]);
}
arr2[0][0] = arr1[0][0];
arr2[0][1] = arr1[0][1];
arr2[0][2] = arr1[0][2];
for (int i = 1; i < N; i++) {
arr2[i][0] = min(arr2[i - 1][1], arr2[i - 1][2]) + arr1[i][0];
arr2[i][1] = min(arr2[i - 1][0], arr2[i - 1][2]) + arr1[i][1];
arr2[i][2] = min(arr2[i - 1][0], arr2[i - 1][1]) + arr1[i][2];
}
printf("%d", min(arr2[N - 1][0], (min(arr2[N - 1][1], arr2[N - 1][2]))));
}