λ¬Έμ
μ μ 4λ₯Ό 1, 2, 3μ ν©μΌλ‘ λνλ΄λ λ°©λ²μ μ΄ 7κ°μ§κ° μλ€. ν©μ λνλΌ λλ μλ₯Ό 1κ° μ΄μ μ¬μ©ν΄μΌ νλ€.
- 1+1+1+1
- 1+1+2
- 1+2+1
- 2+1+1
- 2+2
- 1+3
- 3+1
μ μ nμ΄ μ£Όμ΄μ‘μ λ, nμ 1, 2, 3μ ν©μΌλ‘ λνλ΄λ λ°©λ²μ μλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ ν μ€νΈ μΌμ΄μ€μ κ°μ Tκ° μ£Όμ΄μ§λ€. κ° ν μ€νΈ μΌμ΄μ€λ ν μ€λ‘ μ΄λ£¨μ΄μ Έ μκ³ , μ μ nμ΄ μ£Όμ΄μ§λ€. nμ μμμ΄λ©° 11λ³΄λ€ μλ€.
μΆλ ₯
κ° ν μ€νΈ μΌμ΄μ€λ§λ€, nμ 1, 2, 3μ ν©μΌλ‘ λνλ΄λ λ°©λ²μ μλ₯Ό μΆλ ₯νλ€.
λ°±μ€ μ€λ² 3 ν°μ΄. DP λ¬Έμ μκ³ DPλ μ νμμ μ°Ύλκ² νμ μ΄λ ΅λ€;
1μ 1λ‘λ§ νν κ°λ₯. (1)
2λ 1+1, 2λ‘ νν κ°λ₯. (2)
3μ 1+ (2μ κ²½μ°μ μ), 2+ (1μ κ²½μ°μ μ), 3 . (4)
4λ
1+ (3μ κ²½μ°μ μ),
2+ (2μ κ²½μ°μ μ),
3+ (1μ κ²½μ°μ μ)
5λ
1+ (4μ κ²½μ°μ μ),
2+ (3μ κ²½μ°μ μ),
3+ (2μ κ²½μ°μ μ)
λ°λΌμ
#include <iostream>
#include <vector>
using namespace std;
// λ°±μ€ 9095
int main(){
int t;
int n;
cin >> t;
int dp[11]={0,};
dp[1] = 1;
dp[2] = 2;
dp[3] = 4;
for (int i = 0; i < t; ++i) {
cin >> n;
for (int j = 4; j <= n; ++j){
dp[j] = dp[j - 1] + dp[j - 2] + dp[j - 3];
}
cout << dp[n] << "\n";
}
return 0;
}
'π μκ³ λ¦¬μ¦ > BOJ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C++/λ°±μ€] 1260 : DFSμ BFS (0) | 2023.02.21 |
---|---|
[C++/λ°±μ€] 1149 : RGB 거리 (0) | 2023.02.21 |
[C++/λ°±μ€] 1924 : 2007λ (0) | 2023.02.21 |
[C++/λ°±μ€] 1026 : 보물 (1) | 2023.01.16 |
[C++/λ°±μ€] 25178 : λλΌλ¬΄λ¦¬ ν΄μ§ (0) | 2022.08.09 |