반응형
https://www.acmicpc.net/problem/9251
str1 = input()
str2 = input()
dp = [[0]*(len(str1)+1) for x in range(len(str2)+1)]
for i in range(1, len(str2)+1):
for j in range(1, len(str1)+1):
if str1[j-1] == str2[i-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])
다이나믹 프로그래밍인 줄 몰랐을 때 전혀 감이 안오다가
다이나믹 프로그래밍 쪽으로 생각해보니 점점 감이 왔다.
표를 그려보고 규칙을 찾아 코드를 작성하였다.
왜 되는지는... 정확힌 모르겠네..
댓글