[백준/파이썬] 11053 가장 긴 증가하는 부분 수열
https://www.acmicpc.net/problem/11053
알고리즘 분류
- 다이나믹프로그래밍
문제풀이
d[0]은 수열 A의 첫 번째 원소보다 작은 수를 카운트한다.
ex)
i=2
if 10<a[2], if 20<a[2]
[1, 2, 1, 1, 1, 1][1, 2, 1, 2, 1, 1][1, 2, 1, 3, 1, 1][1, 2, 1, 3, 1, 1]
[1, 2, 1, 3, 2, 1][1, 2, 1, 3, 2, 1][1, 2, 1, 3, 2, 2][1, 2, 1, 3, 2, 3]
[1, 2, 1, 3, 2, 3][1, 2, 1, 3, 2, 4][1, 2, 1, 3, 2, 4]
소스코드
n=int(input())
a=list(map(int, input().split()))
d=[1]*n
for i in range(1,n):
for j in range(i):
if a[j]<a[i]:
d[i]=max(d[i],d[j]+1)
print(max(d))
Author And Source
이 문제에 관하여([백준/파이썬] 11053 가장 긴 증가하는 부분 수열), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@bye9/백준파이썬-11053-가장-긴-증가하는-부분-수열저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)