- dp 활용
- index : index번호가 수열의 마지막 번호 일 때 될 수 있는 수열의 최장 길이
- 기본값 1 : 자기 자신 하나로 이루어진 수열은 최소 존재해서 1로 설정
- solve 함수
- 앞에서 부터 차근차근 진행(i는 0부터 N까지)
- 기존의 값들과 비교 (j는 0부터 i까지)
- A[j] < A[i] 이면 그 숫자 뒤에 연결하여 수열을 만들 수 있으므로
- 이 경우 최대값이 갱신 되면 갱신
def solve():
for i in range(N):
for j in range(0,i):
if A[j] < A[i]:
dp[i] = max(dp[i],dp[j]+1)
N = int(input())
A = list(map(int,input().split()))
dp = [1]*N
solve()
print(max(dp))
'알고리즘 문제 풀이 > Python' 카테고리의 다른 글
python 백준 1932 정수 삼각형 (0) | 2022.05.14 |
---|---|
python 백준 15663 N과 M (9) (0) | 2022.05.12 |
python 백준 16953 A - > B (0) | 2022.05.07 |
python 백준 15652 N과M(4) (0) | 2022.05.05 |
python 15650 N과 M(2) (0) | 2022.05.04 |