https://www.acmicpc.net/problem/11055
11055번: 가장 큰 증가 부분 수열
수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수
www.acmicpc.net
dp를 이용한 문제.. dp개념을 잘 이해하지 못한 나에겐 조금 힘든 문제였다..
n=int(input())
arr=list(map(int, input().split()))
result = [1]*n
result[0] = arr[0]
for i in range(1,n):
for j in range(i):
if arr[i] > arr[j]:
result[i] =max(result[i],result[j] + arr[i])
else:
result[i] = max(result[i], arr[i])
print(max(result))
'Algorithm > baekjoon' 카테고리의 다른 글
baekjoon 2473: 세 용액 (0) | 2022.06.22 |
---|---|
beakjoon 16500: 문자열 판별 (0) | 2022.06.14 |
backjoon 2469: 사다리 타기 (0) | 2022.05.17 |
baekjoon 14606: 피자(small) (0) | 2022.05.17 |
baekjoon 2589: 보물섬 (0) | 2022.04.26 |
댓글