Fullstack-Study

DP

1. LIS (Longest Increasing Subsequence , 최장 증가 부분 수열)

DP 접근

  1. dp[i] 정의
  1. 점화식
dp[i] = 1
for j = 0 to i-1:
    if arr[j] < arr[i]:
        dp[i] = max(dp[i], dp[j]+1)
  1. 최종답

2. LCS (Longest Common Subsequence, 최장 공통 부분 수열)

DP 접근

  1. dp[i][j] 정의
  1. 점화식
if s1[i-1] == s2[j-1]:
   dp[i][j] = dp[i-1][j-1] + 1
else:
    dp[i][j] = max(dp[i-1][j], dp[i][j-1])
  1. 최종답