https://www.acmicpc.net/problem/11055
11055번: 가장 큰 증가 부분 수열
수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수
www.acmicpc.net
풀이 과정
https://greentea31.tistory.com/34
백준 11053 - 가장 긴 증가하는 부분 수열 [파이썬]
https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20,..
greentea31.tistory.com
11053번 문제와 비슷한 점화식을 세워서 문제를 해결할 수 있다.
sum[i] -> i번째 원소를 마지막으로 하는 합이 가장 큰 증가 부분수열 이라고 하면 다음과 같은 점화식이 성립한다.
sum[i] = max(sum[j]) + A[i] (j < i, A[j] < A[i])
소스 코드
import sys
n = int(sys.stdin.readline())
A = list(map(int, sys.stdin.readline().split()))
sum = [x for x in A]
for i in range(n):
for j in range(i):
if A[j] < A[i]:
sum[i] = max(sum[i], sum[j] + A[i])
print(max(sum))
'알고리즘 문제 풀이 > 백준' 카테고리의 다른 글
백준 11054 - 가장 긴 바이토닉 부분 수열 [파이썬] (0) | 2022.05.26 |
---|---|
백준 11722 - 가장 긴 감소하는 부분 수열 [파이썬] (0) | 2022.05.26 |
백준 1932 - 정수 삼각형 [파이썬] (0) | 2022.04.30 |
백준 2156 - 포도주 시식 [파이썬] (0) | 2022.04.30 |
백준 11057 - 오르막 수 [파이썬] (0) | 2022.04.22 |