코드
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int N;
int home[1001][3];
int dp[1001][3];
cin >> N;
for(int i = 0; i < N; i++){
for(int j = 0; j < 3; j++){
cin >> home[i][j];
}
}
for(int i = 0; i < 3; i++){
dp[0][i] = home[0][i];
}
for(int i = 1; i < N; i++){
dp[i][0] = min(dp[i-1][1], dp[i-1][2]) + home[i][0];
dp[i][1] = min(dp[i-1][0], dp[i-1][2]) + home[i][1];
dp[i][2] = min(dp[i-1][1], dp[i-1][0]) + home[i][2];
}
cout << min(min(dp[N-1][0], dp[N-1][1]), dp[N-1][2]);
return 0;
}
알게된점
쉬운 dp문제당
'하루하나코딩' 카테고리의 다른 글
프로그래머스 : 모음제거 c++ (0) | 2023.04.15 |
---|---|
백준 1167 : 트리의 지름 c++ (0) | 2023.04.14 |
백준 1043 : 거짓말 c++ (0) | 2023.04.13 |
백준 1927 : 최소 힙 c++ (0) | 2023.04.12 |
백준 11279 : 최대 힙 c++ (0) | 2023.04.12 |