우노
[DP] 백준 11722번 “가장 긴 감소하는 부분 수열” Python 풀이 본문
Algorithm/Dynamic Programming
[DP] 백준 11722번 “가장 긴 감소하는 부분 수열” Python 풀이
운호(Noah) 2024. 3. 21. 15:36문제 링크
코드
import sys
n = int(sys.stdin.readline())
item = list(map(int, sys.stdin.readline().split()))
# 아이템 역순 정렬
item_reversed = item[::-1]
# DP 테이블 생성
dp = [1] * n
for i in range(n):
for j in range(i+1,n):
# 현재 위치의 값(item_reversed[i])보다 비교 대상(item_reversed[j])보다 크면,
# 증가하는 순서가 성립하므로 DP 테이블 업데이트
if (item_reversed[i] < item_reversed[j]):
dp[j] = max(dp[i]+1, dp[j])
print(max(dp))
'Algorithm > Dynamic Programming' 카테고리의 다른 글
[DP] 백준 12865번 “평범한 배낭” Python 풀이 (0) | 2024.03.15 |
---|---|
[DP] 백준 2011번 “암호코드” Python 풀이 (1) | 2023.12.03 |
[DP] 백준 2293번 “동전 1” Python 풀이 (0) | 2023.12.02 |
[DP] 프로그래머스 “등굣길” Python 풀이 (0) | 2022.11.28 |
[DP] 백준 2240번 “자두나무” Python 풀이 (0) | 2022.11.21 |
Comments