1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #define _CRT_SECURE_NO_WARNINGS #include <cstdio> #include <algorithm> using namespace std; int main() { int n, a[1001][3]; int d[1001][3]; scanf("%d", &n); for (int i = 1; i <= n; i++) { for (int j = 0; j < 3; j++) { scanf("%d", &a[i][j]); } } a[0][0] = a[0][1] = a[0][2] = d[0][0] = d[0][1] = d[0][2] = 0; for (int i = 1; i <= n; i++) { d[i][0] = min(d[i - 1][1], d[i - 1][2]) + a[i][0]; d[i][1] = min(d[i - 1][0], d[i - 1][2]) + a[i][1]; d[i][2] = min(d[i - 1][0], d[i - 1][1]) + a[i][2]; } printf("%d\n", min(d[n][0], min(d[n][1], d[n][2]))); return 0; } | cs |
한 달만에 풀어보는 DP 문제.
DP 개념을 다 까먹었다는 게 실감이 난다.
이 쉬운걸 이렇게 오려걸래 풀다니..
백준 1010 다리 놓기 (0) | 2018.05.18 |
---|---|
백준 1003 피보나치 함수 (0) | 2018.05.18 |
백준 1389 케빈 베이컨의 6단계 법칙 (0) | 2018.05.17 |
백준 11403 경로 찾기 (0) | 2018.05.17 |
백준 11404 플로이드 (0) | 2018.05.17 |
댓글,
jayharvey
머신러닝/딥러닝 관련 글을 포스팅할 예정입니다 :)