문제링크 : https://www.acmicpc.net/problem/11727
11727번: 2×n 타일링 2
2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다.
www.acmicpc.net
풀이과정:
앞선 문제인 11726 - 2*n 타일링 1번 보다는 점화식을 구하는데 시간이 걸린 문제였지만,
그렇게 어렵지 않게 점솨히슥을 구할 수 있었다.
n = 1 일때, 1
n = 2 일때, 3
n = 3 일때, 5
n = 4 일때, 11
n = 5 일때, 21
n = 6 일때, 43
이까지 구해보았고, 이를 통해 dp[n] = dn[n-2]*2 + dp[n] 이라는 점화식을 구할 수 있다.
n = int(input())
dp = [None, 1, 3]
for i in range(3, 1001):
dp.append(dp[i-2]*2 + dp[i-1])
print(dp[n])
후기 : 커지는 속도가 상당히 빠른거같아 n에 900을 대입하여 값을 구해보았더니, 세상에...
자릿수를 셀수도 없을정도로 큰 수가 나온다... 역시 컴퓨터는 대단하다..
'Coding > 백준' 카테고리의 다른 글
[백준] 2156 - 포도주 시식(Dynamic programming) - (python 파이썬) (0) | 2022.02.11 |
---|---|
[백준] 11052 - 카드 구매하기 - (python 파이썬) (0) | 2022.02.11 |
[백준] 17298 - 오등큰수 - (python 파이썬) (0) | 2022.02.06 |
[백준] 17298 - 오큰수 - (python 파이썬) (0) | 2022.02.06 |
[백준] 10799 - 쇠막대기 - (python 파이썬) (0) | 2022.02.05 |