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))
'공부 > 알고리즘' 카테고리의 다른 글
[알고리즘][백준] 11055번 가장 큰 증가하는 부분 수열 - 파이썬(python) 풀이 (0) | 2024.03.30 |
---|---|
[알고리즘][백준] 1932번 정수 삼각형 - 파이썬(python) 풀이 (1) | 2024.03.25 |
[알고리즘][백준] 9465번 스티커 - 파이썬(python) 풀이 (0) | 2024.03.19 |
[알고리즘][백준] 11057번 오르막 수 - 파이썬(python) 풀이 (1) | 2024.03.18 |
[알고리즘][백준] 1309번 동물원 - 파이썬(python) 풀이 (0) | 2024.03.16 |