STUDY/Python 알고리즘

[백준] 11726번 2xn 타일링

Ojungii 2024. 5. 15. 22:48

 

하루를 마무리하며 하나 풀어봅니다.

 

접근법

- DP

- 점화식 : dp[i] = dp[i-2] + dp[i-1]

 

실패 코드 

- 입력값의 범위를 모두 충족하지 못했습니다. 

- n = 1일때 dp[2]에서 index out of range 에러 발생

n = int(input())
dp = [0 for _ in range(n+1)]


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

print(dp[n]%10007)

 

정답 코드

n = int(input())
dp = [0 for _ in range(n+1)]

if n < 3 :
    print(n)
else:
    dp[1], dp[2] = 1,2
    for i in range(3,n+1):
        dp[i] = dp[i-1] + dp[i-2]

    print(dp[n]%10007)