728x90
하루 종일 고민했는데...
결국 풀이를 참고했다.
import sys
input=sys.stdin.readline
A=input().upper()
B=input().upper()
a=len(A)
b=len(B)
dp=[[0]*(b) for _ in range(a)]
for i in range(1,a):
for j in range(1,b):
if A[i-1]==B[j-1]:
dp[i][j]=dp[i-1][j-1]+1
else:
dp[i][j]=max(dp[i-1][j],dp[i][j-1])
print(dp[-1][-1])
지금까지는 1차원적으로 DP수열에 저장하는것으로 했었는데
이건 또 2차원수열..
어떤지 어떻게 해도 답이 안나오더라..
하기 블로그 참고해서 이해했다
728x90
'Baekjoon Case' 카테고리의 다른 글
[파이썬 / 백준 11726 번] 2xn 타일링 (0) | 2021.09.17 |
---|---|
[파이썬 / 백준 9095번] 1, 2, 3 더하기 (0) | 2021.09.17 |
[파이썬 / 백준 2565번] 전깃줄 (0) | 2021.09.11 |
[파이썬 / 백준 11054번] 가장 긴 바이토닉 부분 수열 (0) | 2021.09.11 |
[파이썬 / 백준 11503번] 가장 긴 증가하는 부분 수열 (0) | 2021.09.09 |