동적 ν”„λ‘œκ·Έλž˜λ°Intermediate

νŽΈμ§‘ 거리 (λ ˆλ²€μŠˆνƒ€μΈ)

ν•œ λ¬Έμžμ—΄μ„ λ‹€λ₯Έ λ¬Έμžμ—΄λ‘œ λ³€ν™˜ν•˜λŠ” 데 ν•„μš”ν•œ μ΅œμ†Œ 단일 문자 νŽΈμ§‘(μ‚½μž…, μ‚­μ œ, λŒ€μ²΄) 횟수λ₯Ό κ³„μ‚°ν•˜λŠ” 동적 ν”„λ‘œκ·Έλž˜λ° μ•Œκ³ λ¦¬μ¦˜μž…λ‹ˆλ‹€. λ§žμΆ€λ²• 검사, DNA μ„œμ—΄ μ •λ ¬, μžμ—°μ–΄ 처리의 기본이 λ©λ‹ˆλ‹€.

#dynamic-programming#strings#levenshtein#spell-check

Complexity Analysis

Time (Average)

O(m Γ— n)

Expected case performance

Space

O(m Γ— n)

Memory requirements

Time (Best)

O(m Γ— n)

Best case performance

Time (Worst)

O(m Γ— n)

Worst case performance

πŸ“š CLRS Reference

Introduction to Algorithmsβ€’Chapter 15β€’Section 15.4

How it works

  • β€’ Minimum edits to transform string1 to string2
  • β€’ Operations: insert, delete, replace
  • β€’ Dynamic programming approach
  • β€’ O(m Γ— n) time and space complexity
  • β€’ Also known as Levenshtein distance
Step: 1 / 0
500ms
SlowFast
Keyboard Shortcuts
Space Play/Pause← β†’ StepR Reset1-4 Speed

Real-time Statistics

Algorithm Performance Metrics

Progress0%
Comparisons
0
Swaps
0
Array Accesses
0
Steps
1/ 0

Algorithm Visualization

Step 1 of 0

Initialize array to begin

Default
Comparing
Swapped
Sorted

Code Execution

Currently executing
Previously executed

Implementation

Edit Distance (Levenshtein) - Algorithm Vision