DHistory

[Baekjoon] DP - 11722 가장 긴 감소하는 부분 수열 본문

Computer Science/Algorithm

[Baekjoon] DP - 11722 가장 긴 감소하는 부분 수열

ddu0422 2023. 9. 25. 11:37

문제

 

11722번: 가장 긴 감소하는 부분 수열

수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} 

www.acmicpc.net

 

풀이

import sys

n = int(sys.stdin.readline().rstrip())
numbers = [0] + list(map(int, sys.stdin.readline().rstrip().split()))


def solution(a):
    d = [1] * len(a)

    for i in range(1, n + 1):
        for j in range(1, i):
            if a[i] < a[j] and d[i] < d[j] + 1:
                d[i] = d[j] + 1

    return max(d)


print(solution(numbers))

 

채점 결과