문제 설명
다음의 점화식에 의해 정의된 수열 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 ≤ 35에 대하여 t(n)을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 n (0 ≤ n ≤ 35)이 주어진다.
출력
첫째 줄에 t(n)을 출력한다.
문제 분석 과정
주어진 점화식을 갖고 다이나믹 프로그래밍 알고리즘을 이용해 문제를 해결해야한다. 주어진 점화식은 다음과 같다.
점화식
소스 코드
n = int(input())
dp = [0 for _ in range(36)]
dp[0] = 1
dp[1] = 1
dp[2] = 2
for i in range(3, n+1):
for j in range(i):
dp[i] += dp[j]*dp[i-1-j]
print(dp[n])
문제 원본 & 소스코드 원본
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
GitHub - HwangBBang/BOJ_Work_Space: 백준 문제의 풀이를 기록합니다
백준 문제의 풀이를 기록합니다. Contribute to HwangBBang/BOJ_Work_Space development by creating an account on GitHub.
github.com
오류나 질문에 대한 문의 댓글로 남겨주세요!
'PS > DP' 카테고리의 다른 글
[PS][BOJ/11053번]가장 긴 증가하는 부분 수열 (0) | 2023.02.15 |
---|---|
[PS][BOJ/10844번] 쉬운 계단수 (0) | 2023.02.14 |
[PS][BOJ/1912번]-연속합 (0) | 2023.02.13 |
[PS][BOJ/14852번]-타일 채우기3 (0) | 2023.02.09 |
[PS][BOJ/1149번]-RGB거리 (0) | 2023.02.09 |