공부공간

BOJ - 2579 ) 계단오르기 본문

알고리즘/Dynamic Programming

BOJ - 2579 ) 계단오르기

개발자가될수있을까? 2019. 12. 15. 21:43

 


 

계단을 오르면서 얻을수있는 점수의 최댓값을 구하는 문제이다.

맨 마지막을 꼭 밟으면서 연속된 3개의 계단은 밟지 못하는 규칙이 있으므로

 

1. 두칸을 오르고 맨마지막 직전의 계단을 밟고 마지막 계단을 밟은경우,

2. 두칸을 오르고 맨마지막 직전 계단 이전을 밟고, 직전계단을 밟고 마지막 계단을 밟은 경우로 나뉜다.

 

즉 dp[n]값을 구하기위해서 dp[n-2] + num[n] 값과 dp[n-3] + num[n-1] + num[n-2] 값중 큰값으로 업데이트해주면서 진행하면된다.

 

 


'알고리즘 > Dynamic Programming' 카테고리의 다른 글

BOJ - 1912 ) 연속합  (0) 2019.12.15
BOJ - 1932 ) 정수 삼각형  (0) 2019.12.15
BOJ - 2156 ) 포도주 시식  (0) 2019.12.15
BOJ - 11048 ) 이동하기  (0) 2019.12.15
BOJ - 1937 ) 욕심쟁이 판다  (0) 2019.12.12
Comments