프로그래머스 연습문제
- Lv 2. 멀리 뛰기 (Python)
https://school.programmers.co.kr/learn/courses/30/lessons/12914
def solution(n):
if (n <= 3):
return n
dp = [0] * (n+1)
dp[1] = 1
dp[2] = 2
for i in range(3, n+1):
dp[i] = (dp[i-2] + dp[i-1]) % 1234567
return dp[n]
1칸 | 2칸 | 3칸 | 4칸 | 5칸 |
---|---|---|---|---|
(1) | (1,1) (2) | (1,1,1) (1,2) (2,1) | (1,1,1,1) (1,1,2) (1,2,1) (2,1,1) (2,2) | (1,1,1,1,1) (1,1,1,2) (1,1,2,1) (1,2,1,1,) (2,1,1,1) (1,2,2) (2,1,2) (2,2,1) |
1개 | 2개 | 3개 | 5개 | 7개 |
n-2
칸을 뛴 후에 + 2
칸을 더 뛴다.n-1
칸을 뛴 후에 + 1
칸을 더 뛴다n
칸을 뛰는 방법 = (n-2
칸을 뛰는 방법) + (n-1
칸을 뛰는 방법)https://dannydevnote.tistory.com/14
https://m.blog.naver.com/chanmuzi/222843477118
https://velog.io/@himi/프로그래머스-멀리뛰기