동적계획법 다이나믹프로그래밍을 사용하여 풀 수 있는 문제이다. 

맨 처음은 완전탐색의 방법을 사용하였으나 테스트케이스 9개? 정도 맞추고 시간초과났다.


다이나믹프로그래밍을 쉽게 적용하여 풀 수 있는 문제라는 생각을 해보았다.


점화식은 간단하다.


dp[i][j] = max(dp[i-1][j], dp[i][j-1]) + arr[i][j]로써


입력받은 배열을 arr로 놓았고 dp라는 배열을 만들어서 현재까지 지나오면서 채취할 수 있는 자원의 최대양을 저장하는 배열을 하나 더 만들었다. 


for문을 돌면서 현재의 위치에서 경로 중 가장 자원을 많이 채취 할 수 있는 양을 계산해주었다.(이게 가능한 것은 scv가 오른쪽 또는 아래쪽으로만 이동 할 수 있기 때문이다.)


현재의 배열의 위치는 왼쪽에서 진입하는 scv가 채취하는 최대의 양 또는 위쪽에서 진입하는 scv가 채취하는 최대의양을 말한다. 

'알고리즘문제풀이' 카테고리의 다른 글

2161_카드1  (0) 2015.03.25
2520_떡 먹는 호랑이  (0) 2015.03.25
1149_RGB거리  (0) 2015.03.25
더블릿_자리배치  (0) 2015.03.25
더블릿_jumping_cow 점프  (0) 2015.03.25
Posted by slender ankles
,