https://www.acmicpc.net/problem/17216
문제
아이디어
모든 경우를 계산하며, dp값으로 누적하면 되겠다고 생각했다.
풀이
위의 dp값중 가장 큰 값을 출력하면 정답이 된다.
코드
import sys
input = sys.stdin.readline
N = int(input())
arr = list(map(int, input().split()))
dp = arr[:]
for i in range(N):
for j in range(i):
if arr[j] > arr[i]:
dp[i] = max(dp[i], dp[j] + arr[i])
print(max(dp))
'알고리즘' 카테고리의 다른 글
[백준 파이썬] 2644 촌수계산 (1) | 2023.12.06 |
---|---|
[백준 파이썬] 12865 평범한 배낭 (1) | 2023.12.04 |
[백준 파이썬] 9465 스티커 (1) | 2023.11.29 |
[백준 파이썬] 13549 숨바꼭질 3 (0) | 2023.11.17 |
[백준 파이썬] 1991 트리순회 (0) | 2023.11.15 |