๋ฌธ์
์ ์ 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 |