DHistory
[Baekjoon] DP - 11055 가장 큰 증가하는 부분 수열 본문
문제
11055번: 가장 큰 증가하는 부분 수열
수열 A가 주어졌을 때, 그 수열의 증가하는 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가하는
www.acmicpc.net
풀이
"""
가장 큰 증가하는 부분 수열의 합
"""
import sys
from copy import deepcopy
n = int(sys.stdin.readline().rstrip())
numbers = [0] + list(map(int, sys.stdin.readline().rstrip().split()))[:n]
def solution(a):
d = deepcopy(a)
for i in range(2, len(a)):
for j in range(1, i):
if a[i] > a[j] and d[i] < d[j] + a[i]:
d[i] = d[j] + a[i]
return max(d)
print(solution(numbers))
채점 결과

'Computer Science > Algorithm' 카테고리의 다른 글
[Baekjoon] DP - 1699 제곱수의 합 (0) | 2023.09.25 |
---|---|
[Baekjoon] DP - 11051 이항 계수 2 (0) | 2023.09.25 |
[Baekjoon] DP - 1912 연속합 (0) | 2023.09.25 |
[Baekjoon] DP - 11053 가장 긴 증가하는 부분 수열 (오답노트) (0) | 2023.09.25 |
[Baekjoon] DP - 1904 01타일 (0) | 2023.09.20 |