1. Edit Distance
- 두 문자열 간의 최소 편집 거리를 계산하는 문제입니다.
- 한 문자열을 다른 문자열로 변환하기 위해 필요한 최소 편집 연산의 수를 의미합니다.
연산
- 삽입: 문자 삽입
- 삭제: 문자 삭제
- 교체: 한 문자를 다른 문자로 교체
DP 테이블 정의
dp[i][j]
- i~j까지 최소 편집 연산 수
점화식
A[i-1] == B[j-1]
- dp[i][j] = dp[i-1][j-1]
- 문자가 같으므로 편집 필요 없음
A[i-1] != B[j-1]
- 삽입, 삭제, 교체 중, 최소값을 선택
- 삽입
- A에 문자를 삽입하여 B와 같아지게 함
- dp[i][j-1] + 1
- 삭제
- A에 문자를 삭제하여 B와 같아지게 함
- dp[i-1][j] + 1
- 교체
- A의 문자를 다른 문자로 교체하여 B와 같아지게 함
- dp[i-1][j-1] + 1
출처
'Algorithm' 카테고리의 다른 글
[고급 알고리즘] Dynamic Programming: Prefix Sum (0) | 2024.11.20 |
---|---|
[고급 알고리즘] Dynamic Programming: Palindrome (0) | 2024.11.20 |
[기초 알고리즘] 수학: 모듈러 (0) | 2024.10.26 |
[기초 알고리즘] 수학: 최대공약수 (0) | 2024.10.26 |
[고급 알고리즘] Graph(Shortest Path): Floyd-Warshall (0) | 2024.09.20 |