메뉴 건너뛰기

Python 최대 증가 부분 수열 구하기.

mangdee 2019.07.06 01:06 조회 수 : 364

최대 증가 부분 수열..

https://algospot.com/judge/problem/read/LIS


a=[1,5,2,4,7]

n = len(a)
cache = [-1 for col in range(100)]
ret = 0
//a[start]에서 시작하는 증가 부분 수열 중 최대 길이를 반환한다.
def lis2(start):
    //캐시에 값이 있으면 해당 값 리턴.
    ret = cache[start]
    if(ret != -1):
        return ret
    //항상 a[start]는 있기 때문에 길이는 최하 1.
    ret = 1
    //캐시에 값이 없는 경우
    for next in range(start+1, n):
        if a[start] < a[next]:
            //캐시에 최대 값을 넣는다.
            cache[start] = max(ret, lis2(next) + 1)
            ret = cache[start]
    return ret

maxLen = 0
for begin in range(0, n):
    maxLen = max(maxLen, lis2(begin))

print(maxLen)
번호 제목 글쓴이 날짜 조회 수
21 Python 일반 - n까지의 수 중에서 소수(Prime Number) 구하기 Eugene 2022.09.02 276
20 Python 일반 - 문자열 압축 Eugene 2022.04.19 151
19 Python 일반 - 1등에서 3등까지 사탕 나눠주기 Eugene 2022.03.14 167
18 Python 일반 - 올바른 괄호문자열인가? Eugene 2022.01.26 140
17 Python 일반 - 깊이 우선 탐색 Eugene 2021.03.04 240
16 Python 일반 - Bubble Sort(버블 정렬) Eugene 2020.02.29 315222
15 Python 일반 - 10진수를 2진수로 변환 [1] Eugene 2020.02.19 1801
14 Python 일반 - 스택/큐를 사용하지 않은 회문 알고리즘 Eugene 2019.10.09 457
» Python 최대 증가 부분 수열 구하기. mangdee 2019.07.06 364
12 python 팬미팅 알고리즘 mangdee 2019.06.21 395
11 Python 동적 변수 생성 mangdee 2019.06.05 13878
10 Python 순열과 조합 mangdee 2019.06.04 1120
9 Python 일반 - 2중 루프를 이용한 문자로 여러가지 삼각형 그리기 [1] Eugene 2019.04.11 2385
8 Python 일반 - 2중 루프를 이용한 문자로 삼각형 찍기 Eugene 2019.02.19 484
7 Python 기초: 논리적 물리적 행(line) Eugene 2018.10.24 4665
6 Python 기초: 재귀함수를 이용한 최대값 구하기. [1] Eugene 2018.09.08 6439
5 Python 기초 - 변수와 문자 상수의 사용 Eugene 2018.06.12 463
4 Python 기초 - 이스케이프(escape) 문자와 변수 외... Eugene 2018.01.24 1714
3 Python 기초 - 주석과 자료형 2: format() Method Eugene 2017.10.27 444
2 Python 기초 - 주석과 자료형 1 Eugene 2017.10.19 1141