[BOJ] 11726: 2xn 타일링

3788 단어 pythonS3algorithmDPDP

🔒 예제

>> 2

2

>> 9

55

🔧 풀이

1. n = int(sys.stdin.readline().rstrip())
2. dp 규칙 찾기
	ㄴ 1 -> 2 -> 3 -> 5 -> 8 -> 13 -> ... -> 55 -> ...  <피보나치 수열>
3. 피보나치 수열 : f(n) = f(n-1) + f(n-2)

🔑 답안

import sys

n = int(sys.stdin.readline().rstrip())

if n == 1:
    print(1)
else:
    dp = [0 for _ in range(n+1)]
    dp[1] = 1
    dp[2] = 2

    for i in range(3, n+1):
        dp[i] = (dp[i-1] + dp[i-2]) % 10007

    print(dp[n])

💡 개념

# dp 풀이 순서
1) dp 배열을 1차원으로 할지 n차원으로 할지 고민
2) 문제에서 규칙(수열) 찾기
3) dp[i]에 대해서 식 작성하기
4) 초기값 설정해주기 또는 예외 처리하기

좋은 웹페이지 즐겨찾기