- μ΄ κΈμ c++λ‘ νμ΄λ₯Ό μμ±νμμ΅λλ€.
λ¬Έμ
μμ
νμ΄
- DPλ₯Ό μ΄μ©νμ¬ ν μ μλ λ¬Έμ λ‘ κ·μΉμ μ μκ°νλ©΄ λ©λλ€.
- 2μ°¨μ λ°°μ΄μ λ§λ€κ³ νμ μ§μ μλ₯Ό κ°λ¦¬ν€κ³ , μ΄μ 3κ°μ§μ μμ ν¬κΈ°λ‘ μ μΈν©λλ€.
- iν jμ΄μ jμμμ μΉ νλ€κ³ κ°μ νμ λ, i λ²μ§Έ μ§κΉμ§ μ§μ μΉ νλ μ΅λ λΉμ©μ κ³μ°ν©λλ€.
- 첫 λ²μ§Έ νμμλ μ΄μ μ μμ μΉ ν μ§μ΄ μκΈ° λλ¬Έμ μμ μ μμμ μΉ νλ κ°μΌλ‘ μ΄κΈ°νν©λλ€.
- λ λ²μ§Έ νλΆν°λ μ΄μ νκ³Ό κ²ΉμΉμ§ μλ μ΄ μ€μμ μ΅λκ°μ μ€μ νλ©΄ λ©λλ€.
- ex) 2ν 1μ΄μμλ 1ν 2μ΄κ³Ό 1ν 3μ΄ λ μ€ μ΅λκ°μ 2ν 1μ΄μ λΉ¨κ°μ§μ μΉ νλ κ°μ λνλ©΄ λ©λλ€.
#include<iostream>
using namespace std;
int main(){
int num;
cin>>num;
int arr[1005][3];
for(int i=0;i<num;i++){
for(int j=0;j<3;j++){
cin>>arr[i][j];
}
}
int sum[1005][3];
sum[0][0] = arr[0][0];
sum[0][1] = arr[0][1];
sum[0][2] = arr[0][2];
for(int i = 1;i<num;i++){
sum[i][0] = min(sum[i-1][1], sum[i-1][2])+arr[i][0];
sum[i][1] = min(sum[i-1][0], sum[i-1][2])+arr[i][1];
sum[i][2] = min(sum[i-1][0], sum[i-1][1])+arr[i][2];
}
cout<<min(sum[num-1][0], min(sum[num-1][1], sum[num-1][2]));
}
- μΆκ°λ‘ κΆκΈνμ μ΄λ μμ ν λΆλΆ μμΌλ©΄ λκΈλ‘ λ¨κ²¨μ£ΌμΈμ.