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
풀이
문제를 보았을때 알수있는 힌트
dp 문제로 처음을 1을 가지고 있는 dp를 만들고 이어서 자기자신보다 큰 값이 나오면 +1 하고 dp의 위치와 비교하여 큰 값을 입력하는 형식으로 풀면 쉽게 풀린다.
import sys
input= sys.stdin.readline
n= int(input())
n_list=list(map(int,input().split()))
result=[]
dp=[1 for _ in range(n)]
n_list.reverse()
for i in range(n):
for j in range(i):
if n_list[i]>n_list[j]:
dp[i] = max(dp[i],dp[j]+1)
dp.reverse()
print(max(dp))
https://github.com/dydwkd486/coding_test/blob/main/baekjoon/baekjoon11722.py
GitHub - dydwkd486/coding_test: 코딩테스트 공부한 내용 정리
코딩테스트 공부한 내용 정리. Contribute to dydwkd486/coding_test development by creating an account on GitHub.
github.com
'Coding Test > baekjoon' 카테고리의 다른 글
[백준 2470] 두 용액 - python (solved.ac - 골드 5) (0) | 2022.05.05 |
---|---|
[백준 11054] 가장 긴 바이토닉 부분 수열 - python (solved.ac - 골드 3) (0) | 2022.05.05 |
[백준 2660] 회장 뽑기- python (solved.ac - 골드 5) (0) | 2022.05.03 |
[백준 2225] 정수 삼각형- python (solved.ac - 골드 5) (0) | 2022.05.02 |
[백준 9461] 파도반 수열 - python (solved.ac - 실버 3) (0) | 2022.05.02 |