※ 멀리 뛰기
https://school.programmers.co.kr/learn/courses/30/lessons/12914
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 해결 TIP
n이 1일 때부터 생각해보자. dp[1] = 1, 2라면 1씩 2번, 2씩 1번 총 2이다. dp[3]은 (1,1,1),(2,1),(1,2) 3이다. dp[4] = 5, dp[5] = 8이므로 피보나치 수열이 떠오른다.
전체 코드
def solution(n):
if n == 1: return 1
else:
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[-1]
'Python > DP(동적계획법)' 카테고리의 다른 글
[Algorithm] 프로그래머스 정수 삼각형 | 파이썬 (DP, Dynamic Programming) (0) | 2024.07.06 |
---|---|
[Algorithm] 이코테 금광 | 파이썬 (DP, Dynamic Programming) (0) | 2024.07.06 |
[Algorithm] 이코테 개미 전사 | 파이썬 (DP, Dynamic Programming) (0) | 2024.07.03 |
[Algorithm] 백준 1463, 이코테 1로 만들기 | 파이썬 (DP, Dynamic Programming) (0) | 2024.07.03 |
[Algorithm] DP(Dynamic Programming, 동적 계획법) (1) | 2024.01.05 |
댓글