강의

멘토링

로드맵

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

Seyoung Nam님의 프로필 이미지
Seyoung Nam

작성한 질문수

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

4. 최대 부분 증가수열(LIS : Longest Increasing Subsequence )

이 코드도 괜찮을까요?

작성

·

314

0

def dp(arr):
dy = [0]*(len(arr))
dy[0] = 1
for i, num in enumerate(arr):
if i == 0: continue
if num == max(arr[:i+1]): dy[i] = dy[i-1] + 1
else: dy[i] = dy[i-1]
return dy[-1]

퀴즈

71%나 틀려요. 한번 도전해보세요!

동적 계획법(Dynamic Programming)의 핵심 아이디어는 무엇일까요?

문제를 가능한 모든 경우를 탐색하여 최적해를 찾습니다.

현재 상태에서 가장 좋은 선택만을 따라갑니다.

큰 문제를 작은 부분 문제로 나누어 해결하고 그 해답을 재사용합니다.

데이터를 정렬하여 검색 성능을 최적화합니다.

답변 1

0

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

안녕하세요^^

반례입니다. 

arr=[3, 1, 2, 5, 4, 6]

파이썬은 들여쓰기가 되어 있지 않으면 제가 답변하기 너무 힘듭니다. 다음부터 코드를 올리실때는 {;}버튼을 이용하여 올려주시면 감사하겠습니다.

Seyoung Nam님의 프로필 이미지
Seyoung Nam

작성한 질문수

질문하기