※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 13699번 문제인 점화식이다.
문제는 아래 링크를 확인하자.

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

 

13699번: 점화식

다음의 점화식에 의해 정의된 수열 t(n)을 생각하자: t(0)=1 t(n)=t(0)*t(n-1)+t(1)*t(n-2)+...+t(n-1)*t(0) 이 정의에 따르면, t(1)=t(0)*t(0)=1 t(2)=t(0)*t(1)+t(1)*t(0)=2 t(3)=t(0)*t(2)+t(1)*t(1)+t(2)*t(0)=5 ... 주어진 입력 0 ≤ n

www.acmicpc.net

주어진 점화식을 반복문을 이용하여 그대로 구현해주자.

 

재귀적으로 작동하는 함수와 dp를 이용하여 문제를 해결해도 좋을 것이다.

 

답이 32비트 정수로 표현 가능한 범위를 넘을 수 있음에 유의하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;
typedef long long ll;

ll N;
ll dp[36];

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	dp[0] = 1;
	for (ll i = 1; i < 36; i++) {
		for (ll j = 0; j < i; j++) dp[i] += dp[j] * dp[i - j - 1];
	}

	cin >> N;
	cout << dp[N];
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 26771 // C++] Liczby parzystocyfrowe  (0) 2022.12.25
[BOJ 26769 // C++] Deski  (0) 2022.12.25
[BOJ 26751 // C++] Najmniejsza liczba  (0) 2022.12.25
[BOJ 26714 // C++] Liczenie punktów  (0) 2022.12.25
[BOJ 26767 // C++] Hurra!  (0) 2022.12.25

+ Recent posts