1. 문제 출처
https://www.acmicpc.net/problem/2229
2. 풀이
다이나믹 프로그래밍 이용하면 된다.
# 입력
n = int(input())
students = list(map(int,input().split()))
g = [0 for _ in range(1+n)]
# 다이나믹 프로그래밍을 이용하여
for i in range(n+1):
ma = 0
mi = 10001
for j in range(i,0,-1):
ma = max(ma,students[j-1])
mi = min(mi,students[j-1])
g[i] = max(g[i], ma - mi + g[j - 1])
print(g[n])
'알고리즘 > 동적 계획법(Dynamic Programming)' 카테고리의 다른 글
백준-1003-피보나치 함수 (0) | 2024.03.26 |
---|---|
백준-1463-1로 만들기 (0) | 2024.03.25 |
백준-2579-계단 오르기 (0) | 2024.03.19 |
12865-백준-평범한 배낭 (0) | 2023.03.21 |
14501-백준-퇴사 (0) | 2023.02.28 |