-Code
n = int(input())
nums = list(map(int, input().split()))
dp = [0] * n
dp[0] = nums[0]
for i in range(n):
for j in range(i):
if nums[i] > nums[j]:
dp[i] = max(dp[i], dp[j] + nums[i])
else:
dp[i] = max(dp[i], nums[i])
print(max(dp))
dp문제를 풀려고 고른 문제고 예전에 풀었던 것이랑 비슷하나 익숙하지 않아서 참고를 많이 해서 나중에 다시 풀어봐야겠습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬] 14501번 퇴사 (0) | 2022.05.12 |
---|---|
[백준/파이썬] 12015번 가장 긴 증가하는 부분 수열 2 (0) | 2022.05.11 |
[백준/파이썬] 1912번 연속합 (0) | 2022.05.11 |
[백준/파이썬] 22857번 가장 긴 짝수 연속한 부분 수열 (small) (0) | 2022.05.11 |
[백준/파이썬] 10025번 게으른 백곰 (0) | 2022.05.11 |