PS/백준
[Python] 2193번 이친수
s_omi
2024. 9. 15. 10:34
✏️ 문제
문제 파악
n이 1, 2, 3, 4, 5일 때 각각 dp[n]의 값을 구하면 쉽게 점화식을 구할 수 있다.
그림을 그려보면 다음과 같다.
num 배열은 dp 배열 앞뒤 값의 차이를 담은 배열이다.
그림을 보면 다음과 같은 점화식이 나오는 것을 알 수 있다.
- num[n] = dp[n-1]
- dp[n] = dp[n-1] + num[n-1]
나중에 보니 dp 배열 자체가 피보나치 수열와 같았음... = 이 말은 즉 num 배열 필요 X..
알고리즘
- 다이나믹 프로그래밍
코드
n = int(input())
num = [0, 1, 1]
dp = [1, 1, 2]
for i in range(3, n):
num.append(dp[i-1])
dp.append(dp[i-1] + num[i-1])
print(dp[n-1])