-문제: https://www.acmicpc.net/problem/2133
n이 홀수인 경우에는 dp의 값이 0이다.(홀수이면 1x1 공간이 남는데 이를 채울 방법은 없기 때문이다)
그래서 짝수로 진행했다.
n=2,4,6일때의 값을 구했는데, 점화식을 구하는게 어려웠던 문제다. 인접한 두항으로 점화식을 만드는게 아니라 짝수로 인접한 세 항을 가지고 만드는 문제였다.
예시에서 n=4일때 새롭게 만들 수 있는 타일 구조가 있으므로 이부분에 유의해야한다
f(2)=3
f(4)=11
f(6)=41
-정답풀이:
이전에 푼 것과 for j 문이 다른데, 내가 생각한 대로 해도 정답이 떴다
n = int(input())
dp = [0] * 31
dp[0] = 1
for i in range(2, n + 1, 2):
dp[i] += 3 * dp[i-2]
for j in range(0, i - 3, 2): #0부터 n-4까지의 값은 2를 곱해서 더해준다
dp[i] += 2 * dp[j]
print(dp[n])
'백준 > DP' 카테고리의 다른 글
[dp/백준] 1520번: 내리막길 (0) | 2022.06.13 |
---|---|
[dp/백준] 11048번: 이동하기 (0) | 2022.06.13 |
[dp/백준] 11722번: 가장 긴 감소하는 수열 (0) | 2022.06.11 |
[dp/백준] 11055번: 가장 큰 증가하는 부분 수열 (0) | 2022.06.11 |
[dp/백준] 12865번: 평범한 배낭 (0) | 2022.06.10 |