[백준] 11055 파이썬
문제
- 백준 11055 (실버 2)
수열 a가 주어졌을 때 그 수열의 증가하는 부분 수열 중에서 합이 가장 큰 것을 구하는 문제였다.
내 코드
과거에 풀었던 문제여서 쉽게 풀 수 있었다.
dp를 활용하여서 코드를 작성하였다.
수열 a를 탐색하면서 자신을 포함한 증가한 부분 수열의 합을 dp 리스트에 담아주는 방식으로 구현하였다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import sys
input = sys.stdin.readline
n = int(input())
a = list(map(int, input().split()))
dp = [x for x in a]
for i in range(1, n):
for j in range(i):
if a[i] > a[j]:
dp[i] = max(dp[j] + a[i], dp[i])
print(max(dp))
This post is licensed under CC BY 4.0 by the author.