#문제링크
https://www.acmicpc.net/problem/11726
11726번: 2×n 타일링
2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.
www.acmicpc.net
#나의풀이
import sys
if __name__ == '__main__':
n = int(sys.stdin.readline())
dp = [0] * 1001
dp[1] = 1
dp[2] = 2
for i in range(3, n+1):
dp[i] = dp[i-2] + dp[i-1]
print(dp[n] % 10007)
#해설
전형적인 DP문제 이쯤되면 solved에서 실버3은 dp로 되어있는 문제만 있는게 아닐까 라는 생각이든다.
2x1부터 2x2 ... 2xn 까지 점점 커지는데 안에 있는 경우의수는 i = (i-1) + (i-2)가 된다. 즉 1과 2는 직접 초기화 시켜주고 3부터 반복문을 돌며 값을 완성시켜준다.
'코딩테스트' 카테고리의 다른 글
[백준/파이썬] 1260 DFS와 BFS (0) | 2022.06.15 |
---|---|
[백준/파이썬] 11727 2xn 타일링2 (0) | 2022.06.13 |
[백준/파이썬] 11659 구간 합 구하기4 (0) | 2022.06.13 |
[백준/파이썬] 9461 파도반 수열 (0) | 2022.06.10 |
[백준/파이썬] 9375 패션왕 신해빈 (0) | 2022.06.10 |