We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent fbeb418 commit be95a0dCopy full SHA for be95a0d
16/6.py
@@ -0,0 +1,29 @@
1
+str1 = input()
2
+str2 = input()
3
+
4
+# 최소 편집 거리 계산을 위한 다이나믹 프로그래밍
5
+def edit_dist(str1, str2):
6
+ n = len(str1)
7
+ m = len(str2)
8
9
+ # 이차원 테이블을 초기화
10
+ dp = [[0] * (m + 1) for _ in range(n + 1)]
11
12
+ for i in range(n + 1):
13
+ for j in range(m + 1):
14
+ # 문자열 A가 비어 있다면, 문자열 B로 모든 문자를 삽입
15
+ if i == 0:
16
+ dp[i][j] = j
17
+ # 문자열 B가 비어 있다면, 문자열 A로 모든 문자를 삽입
18
+ elif j == 0:
19
+ dp[i][j] = i
20
+ # 문자가 같다면, 왼쪽 위에 해당하는 수를 그대로 가져옴
21
+ elif str1[i-1] == str2[j-1]:
22
+ dp[i][j] = dp[i-1][j-1]
23
+ # 마지막 문자가 다르다면, 모든 경우의 수 중에서 최솟값 찾기
24
+ else: # 삽입, 삭제, 교체 중에서 최소 비용을 찾아 삽입
25
+ dp[i][j] = 1 + min(dp[i][j-1], dp[i-1][j], dp[i-1][j-1])
26
27
+ return dp[n][m]
28
29
+print(edit_dist(str1, str2))
0 commit comments