본문 바로가기
공부/알고리즘

[알고리즘][백준] 11722번 가장 긴 감소하는 부분 수열 - 파이썬(python) 풀이

by 무명오리 2024. 4. 2.

https://www.acmicpc.net/problem/11722

 

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

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

www.acmicpc.net


11053번 가장 긴 증가하는 부분 수열의 응용문제!

달라진 것은 증가 -> 감소 이 부분이라 if문에서

 

num[i] > num[j]인 것을 num[i] < num[j]로 변경해주기만 하면 된다.

import sys

n = int(sys.stdin.readline())

num = list(map(int, sys.stdin.readline().split()))

dp = [1] * n

for i in range(1, n):
    for j in range(i):
        if num[i] < num[j]:
            dp[i] = max(dp[i], dp[j]+1)

print(max(dp))

11722_가장긴감소하는부분수열.py
0.00MB