이호진
가장 긴 증가하는 부분 수열 - 동적 프로그래밍 - 2021/05/03 본문
가장 긴 증가하는 부분수열이란 부분수열중에서 증가하는부분이 가장 긴 부분을 뜻한다.
예를들어, 10 20 10 30 20 50이라는 수열이 있을 때 10 20 10 30 20 50 진하게 칠해진 부분의 수열을 뜻한다.
n=int(input())
arr=list(map(int,input().split()))
d=[1]*n
for i in range(1,n):
for j in range(0,i):
if arr[j]<arr[i]:
d[i]=max(d[i],d[j]+1)
print(max(d))
길지 않은 알고리즘이지만 알고리즘을 모르는상태에서는 구현하기 힘든 알고리즘 중 하나이다.
시간이 조금만 지나도 자꾸 잊어버려서 자주자주 연습을 해야겠다.
'기본적인 알고리즘' 카테고리의 다른 글
1로 만들기 - 동적 프로그래밍 - 2021/05/03 (0) | 2021.05.03 |
---|---|
숫자 두 개를 입력 받아 그 사이의 소수를 출력하는 코드 (2021/02/17) (0) | 2021.02.17 |
투 포인터 (2021/02/16) (0) | 2021.02.16 |
소수의 판별, 에라토스테네스의 채 (2021/02/16) (0) | 2021.02.16 |