hades

[Baekjoon] 9095๋ฒˆ: 1, 2, 3 ๋”ํ•˜๊ธฐ ๋ณธ๋ฌธ

๐Ÿ‘Š PS/Algorithm

[Baekjoon] 9095๋ฒˆ: 1, 2, 3 ๋”ํ•˜๊ธฐ

hades1 2024. 7. 20. 22:25

๐Ÿฅ… ๋ฌธ์ œ

https://www.acmicpc.net/problem/9095

 

๐Ÿ” ์„ค๊ณ„

1 = 1

2 = 1 + 1 = 2

3 = 1 + 1 + 1 = 2 + 1 = 1 + 2 = 3

4 = 1 + 1 + 1 + 1 = 2 + 1 + 1 = 1 + 2 + 1 = 3 + 1 = 1 + 1 + 2 = 2 + 2 = 1 + 3

์œผ๋กœ dp[i] = dp[i-1]+dp[i-2]+dp[i-3]์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. dp[0]์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋ฉด, 1๋ถ€ํ„ฐ ๋ฐ˜๋ณต๋ฌธ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋‹จ, ๋ฒ”์œ„๋ฅผ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.

 

๐Ÿ‘Š ํ’€์ด

#include <iostream>
#include <vector>
using namespace std;

int t, n;
vector<int> dp(11);

int main(void)
{	
	dp[0] = 1;
	for (int i = 1; i < 11; i++) {
		if (i - 1 >= 0) {
			dp[i] += dp[i - 1];
		}
		if (i - 2 >= 0) {
			dp[i] += dp[i - 2];
		}
		if (i - 3 >= 0) {
			dp[i] += dp[i - 3];
		}
	}
	cin >> t;
	for (int i = 0; i < t; i++) {
		cin >> n;
		cout << dp[n] << "\n";
	}
	return 0;
}