RUBY

개미 전사 본문

PS/This

개미 전사

RUBY_루비 2020. 8. 6. 16:17

출처:: 

분류:: 다이나믹 프로그래밍

 

1. 문제 이해 및 해결과정

 

 1) i-1번째 식량창고를 털기로 결정한 경우, 현재의 식량창고를 털 수 없다.

 2) i-2번째 식량창고를 털기로 결정한 경우, 현재의 식량 창고를 털 수 있다.

 1번과 2번 중 더 큰 값을 선택하면 된다

 => a(i) = max(a(i-1),a(i-2)+k)

 

2. 풀이방법

 1. bottom-up

#개미 전사
#
import sys
sys.stdin = open("input.txt","r")

dp=[0]*101
n=int(input())
arr=list(map(int,input().split()))

dp[0]=arr[0]
dp[1]=max(arr[0],arr[1])
for i in range(2,n):
    dp[i]=max(dp[i-1],dp[i-2]+arr[i])

print(dp[n-1])

3. 오답원인

 

4. 알게된 점

 

'PS > This' 카테고리의 다른 글

[이론] 최단 경로  (0) 2020.08.06
효율적인 화폐 구성  (0) 2020.08.06
바닥공사  (0) 2020.08.06
1로 만들기  (0) 2020.08.05
[백준] 떡볶이 떡 만들기  (0) 2020.08.05
Comments