11053 가장 긴 증가하는 부분 수열
업데이트:
카테고리: LIS, 다시보기, 다이나믹 프로그래밍, 코딩테스트
1. 문제
문제는 링크에 들어가면 있다.
2. 정답 코드
문제의 내 정답 코드는 다음과 같다.
import sys
N = int(input())
numbers = list(map(int, sys.stdin.readline().split()))
dp_table = [1] * N
for i in range(1,N):
for j in range(i):
if numbers[i] > numbers[j] :
dp_table[i] = max(dp_table[i],dp_table[j]+1)
print(max(dp_table))
3. 풀이 및 생각
문제 풀이
이 문제의 풀이는 동영상으로 올렸었으나, 소리가 녹음되지 않아서… 비슷한 문제 풀이인 11055 가장 큰 증가 부분 수열을 보자.
나의 생각
LIS라는 개념에 대해서 처음 알게 되었다. 2중 FOR문을 써야할거같다곤 생각은 했지만, 어떻게 해야할지 몰랐다. 이 방식 잘 알고가자.