프로그래밍/Python

백준_python 11726번 2×n 타일링(DP)

O'bin 2024. 5. 27. 22:09

<문제 링크>

https://www.acmicpc.net/problem/11726

 

 

 

<정답 코드>

1
2
3
4
5
6
7
8
= int(input())
 
nums = [1,1]
 
for i in range(2, n+1):
    nums.append(nums[i-2+ nums[i-1])
 
print(nums[n] % 10007)
cs

 

문제를 읽어보고 규칙성이 있을 것 같아 몇 개를 그림으로 그려 보니 아래와 같았다.

n 방법의 수
2 2
3 3
4 5
5 8

 

피보나치 수로 진행되는 것이 보여 간단하게 문제를 해결했다. 

DP(동적 프로그래밍) 문제였는데, 큰 문제를 작은 문제로 쪼개는 원리가 피보나치에도 적용되어 있었다.

 

 

 

 

DP를 얼른 공부해야겠다.