For Programmer

백준 11055번 파이썬 문제풀이(DP - 가장 큰 증가 부분 수열) 본문

코팅테스트/백준 문제 모음

백준 11055번 파이썬 문제풀이(DP - 가장 큰 증가 부분 수열)

유지광이 2021. 11. 8. 16:45
728x90


import sys

input = sys.stdin.readline

N = int(input())
input_array = list(map(int, input().split()))
dp = [x for x in input_array]

for i in range(N):
    for j in range(i):
        if input_array[i] > input_array[j]:
            dp[i] = max(dp[i], dp[j] + input_array[i])

print(max(dp))

-> 간단히 리스트를 모두 돌면서 각 원소보다 앞에 있는 작은 숫자들만 계속해서 더해가면서 그 합을 dp에 저장해나가면 된다. 그 후 가장 큰값을 출력하면 된다.

728x90
Comments