Post

[백준] 11055 파이썬

문제


  • 백준 11055 (실버 2)

백준 11055

수열 a가 주어졌을 때 그 수열의 증가하는 부분 수열 중에서 합이 가장 큰 것을 구하는 문제였다.

image

내 코드


과거에 풀었던 문제여서 쉽게 풀 수 있었다.
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))

image

This post is licensed under CC BY 4.0 by the author.