%3C/text%3E%3C/svg%3E">
💻
💻 IT·개발

레벤슈타인 편집 거리 계산기

입력하면 바로 계산됩니다.

입력값

레벤슈타인 편집 거리 계산기 쉽게 이해하기 — 개념과 원리

두 문자열 사이의 레벤슈타인 거리는 한 문자열을 다른 문자열로 바꾸는 데 필요한 문자 삽입, 삭제, 교체의 최소 횟수입니다. 맞춤법 검사, 유사 검색, '이것을 찾으셨나요' 제안, 중복 데이터 정리, DNA 서열 비교의 기초가 됩니다. 이 계산기는 편집 거리와 간단한 유사도 백분율을 보여 줍니다.

kitten을 sitting으로 바꾸기바꾸기 2번(k→s, e→i)과 넣기 1번(g)으로 kitten이 sitting이 되어 거리 3, 유사도 57.14%입니다.kitten → sitting, 편집 3번kittensitten바꾸기 k → ssittin바꾸기 e → isitting넣기 g시작편집 거리 = 3유사도 (1 − 3/7) = 57.14%
한 글자 편집 세 번(바꾸기 2, 넣기 1)이 최소라서 편집 거리는 3입니다.

계산 방법

D[i][j]를 A의 앞 i글자와 B의 앞 j글자 사이의 거리라고 합니다.

원리

어떤 편집 과정이든 마지막 글자에 대한 동작은 A의 마지막 글자 삭제, B의 마지막 글자 삽입, 두 글자 일치 또는 교체 중 하나입니다. 마지막 동작이 무엇이든 나머지는 더 짧은 앞부분끼리의 최적 편집이어야 합니다. 따라서 앞부분의 답을 이용해 전체의 답을 쌓아 올릴 수 있으며, 이것이 동적 계획법(바그너-피셔 알고리즘)입니다. 표의 칸은 (m + 1)(n + 1)개라 시간은 O(mn)이고, 이 계산기는 두 줄만 유지하므로 메모리는 O(n)입니다.

예제 풀이

  1. 입력값: A = "kitten"(6글자), B = "sitting"(7글자)입니다.
  2. k를 s로 교체하면 "sitten"입니다.
  3. e를 i로 교체하면 "sittin"입니다.
  4. 끝에 g를 삽입하면 "sitting"입니다.
  5. 더 짧은 방법은 없으며 표 계산으로도 거리는 3입니다.
  6. 유사도: (1 − 3 ÷ 7) × 100 ≈ 57.14%입니다.

결과 해석

거리 0은 두 문자열이 같다는 뜻이고, 거리는 긴 문자열의 길이를 넘지 않습니다. 오타를 찾을 때 보통 길이의 단어에서 거리가 1~2이면 같은 단어일 가능성이 큽니다. 유사도 백분율은 편의상 만든 점수로 표준 척도는 아니며, 짧은 문자열에서는 한 글자 차이로도 크게 변합니다.

흔한 실수

주의: 이 계산기는 유니코드 코드 포인트 단위로 비교합니다. 여러 코드 포인트로 이루어진 일부 이모지나 분리형 문자는 한 글자가 여러 번의 편집으로 계산될 수 있습니다.

자주 묻는 질문

유사도 기준은 몇 %가 적당한가요?

데이터마다 다르며, 많은 검색 시스템은 고정 백분율 대신 짧은 단어는 1회, 긴 단어는 2회까지 허용합니다.

해밍 거리와 같은가요?

해밍 거리는 길이가 같은 문자열에서 교체만 세고, 레벤슈타인 거리는 삽입과 삭제도 허용합니다.

O(mn)보다 빠르게 구할 수 있나요?

거리가 k 이하인지만 알면 되는 경우 대각선 띠만 계산해 약 O(k · n)에 판단할 수 있습니다.

출처: V. I. Levenshtein, "Binary codes capable of correcting deletions, insertions, and reversals", Soviet Physics Doklady 10(8), 1966 · R. A. Wagner, M. J. Fischer, "The string-to-string correction problem", Journal of the ACM 21(1), 1974

2026년 11월 8일 확인. 표준 공식과 RFC/IEEE 정의를 사용해 브라우저 안에서만 계산합니다. 입력한 내용은 어디에도 전송되지 않습니다.

💻 IT·개발 계산기 전체 →🏠 홍라이프 계산기 홈 →