반응형

-풀이

n = int(input())
#알아보기 쉽게 0인덱스에 0추가
a = [0] + list(map(int, input().split()))
dp = [0]*(n+1)

for i in range(1, n+1):
  for k in range(1, i+1):
    dp[i] = max(dp[i], dp[i-k] + a[k])
print(dp[i])

-풀이 설명

[30분 no sol] 이번에도 실패. 문제를 해결할 돌아가는 방식은 이해가 가는데, 점화식을 대체 어떻게 세우는지 아무리 그리고 해봐도 아직도 잘 안되는 것 같다. DP문제만 21문제 풀었는데 2문제를 맞춘 것 같다.. 구글링으로 풀이를 봐도 저 풀이로 점화식을 생각해낸다는 게 잘 이해가 가지 않는다. 해결책은 뭘까??

풀이 출처 : https://infinitt.tistory.com/250

+ Recent posts