Hamming

Hamming

쉬움

지침

두 DNA 가닥 사이의 해밍 거리를 계산해요.

우리 몸은 DNA를 담고 있는 세포로 이루어져 있어요. 이 세포들은 주기적으로 닳아서 교체가 필요한데, 딸세포로 분열해서 스스로를 새로 만들어요. 실제로 평범한 사람의 몸은 평생에 걸쳐 약 10경 번의 세포 분열을 겪어요!

세포가 분열할 때 DNA도 함께 복제돼요. 이 과정에서 때때로 실수가 생겨서, DNA 조각 하나하나에 잘못된 정보가 인코딩되기도 해요. 두 DNA 가닥을 비교해서 서로 다른 부분의 개수를 세어 보면 실수가 얼마나 일어났는지 알 수 있어요. 이것을 바로 "해밍 거리"라고 해요.

DNA는 C, A, G, T라는 네 글자로 읽어요. 두 가닥은 이렇게 생겼을 수 있어요:

GAGCCTACTAACGGGAT
CATCGTAATGACGGCCT
^ ^ ^  ^ ^    ^^

두 가닥에는 차이가 일곱 개 있어서 해밍 거리는 7이에요.

해밍 거리는 생물학뿐만 아니라 과학의 여러 분야에서 유용하게 쓰여서, 알아 두면 좋은 용어예요 :)

해밍 거리는 길이가 같은 서열에 대해서만 정의돼요. 그래서 길이가 다른 서열 사이에서 계산하려고 하면 제대로 동작하지 않아야 해요. 이런 상황을 처리하는 일반적인 방식(예를 들어 예외를 발생시키는지, 특별한 값을 반환하는지)은 언어마다 다를 수 있어요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Delphi Pascal Exercism

Hamming 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Delphi Pascal 트랙을 연습 문제 76개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.