인프런 커뮤니티 질문&답변

Jiwon님의 프로필 이미지
Jiwon

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

5. 최대 선 연결하기(LIS 응용)

DP 에서 자신보다 아래 인덱스를 검사할 때 오름차순으로 해도 상관없나요?

작성

·

310

1

    n = int(input())
    arr = list(map(int, input().split()))
    res = [0] * n
    res[0] = 1

    ans = 0
    for i in range(1, n):
        maxVal = 0
        for j in range(i): # 이 부분에서 선생님은 주로 내림차순으로 쓰셔서요!
            if arr[i] > arr[j] and res[j] > maxVal:
                maxVal = res[j]
        res[i] = maxVal + 1
        ans = max(ans, res[i])

    print(ans)

주석 부분처럼 선생님은 주로 내림차순으로 검사하시는데
오름차순으로 해도 상관 없는 것이 맞나요?
혹시 문제가 생기는 경우가 있다면 말씀해주시면 감사하겠습니다 :)

+) 좋은 강의 만들어주셔서 감사합니다 많이 배우고 있어요 ㅎㅎ 

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

네 상관없습니다. j가 0부터 i-1까지만 탐색하면 됩니다.

Jiwon님의 프로필 이미지
Jiwon

작성한 질문수

질문하기