아이데이션
전형적인 다이나믹 프로그래밍 문제이다!!
n = 1일 때부터 블럭을 차근차근 쌓아 나가면서, 두가지 갈래를 선택하게 된다
1. n - 1까지 쌓은 상태에서 2x1 타일을 하나 쌓기
2. n - 2까지 쌓은 상태에서 2x1 타일을 두개 쌓기
그럼 현재의 경우의 수는? 1과 2를 더한 값이 된다!!
풀이
n = int(input())
cache = [1] * (n + 1)
for i in range(2, n + 1, 1):
cache[i] = cache[i - 2] + cache[i - 1]
print(cache[n] % 10007)
'Study > 알고리즘 & 자료구조' 카테고리의 다른 글
[백준] 9095 - 1, 2, 3 더하기 (0) | 2024.08.15 |
---|---|
[백준] 11727 - 2xn 타일링 2 (0) | 2024.08.13 |
[백준] 1463 - 1로 만들기 (0) | 2024.08.11 |
[프로그래머스] 2019 카카오 겨울 개발 인턴십 - 튜플 (0) | 2023.04.04 |
[백준] 2294 - 동전 2 (0) | 2023.01.27 |