알고리즘 문제 풀이/Python

python 백준 11053 가장 긴 증가하는 부분 수열

맛대 2022. 5. 11. 21:10
  • 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