문제
풀이
memo[n] = memo[n-1] + memo[n-2] *2
여기서 *2 하는 이유는
2*1 직사각형이 오는 경우와 2*2 직사각형이 오는 경우 2가지 이기 때문
코드
n = int(input())
if n == 1:
print(1)
else:
memo = [0 for i in range(n + 1)]
memo[0] = 1
memo[1] = 1
for i in range(2, n + 1):
memo[i] = memo[i - 1] + memo[i - 2] * 2
print(memo[n] % 10007)
'코딩테스트 > 백준' 카테고리의 다른 글
[백준 실버3] 다이나믹 프로그래밍 - boj1463 1로 만들기 (0) | 2022.11.15 |
---|---|
백준 문제풀기 Lv1 (0) | 2022.11.15 |
[백준 골드5] 브루트포스 - 리모컨(1107) (0) | 2022.10.14 |
[백준 브론즈1] 브루트포스 - 날짜계산(1476) (1) | 2022.10.14 |
[백준 실버2] 브루트포스 - 사탕게임(3085) (0) | 2022.10.14 |