Hamming -DNA 차이
두 DNA 가닥의 해밍 차이를 계산해보는 테스트입니다.
돌연변이는 단순히 핵산, 특히 DNA 생성 또는 복제과정에서 발생하는 실수입니다. 핵산은 세포기능에 필수적이기 때문에 돌연변이는 세포 전체에 파급효과를 일으키는 경향이 있습니다. 돌연변이는 기술적으로 실수이지만, 매우 드문 돌연변이는 세포에 유익한 특성을 부여할 수 있습니다.
공통 조상과 함께 서로다른 게놈으로 부터 얻은 2개의 상동 DNA 가닥 사이의 차이 수를 세어 두 가닥 사이의 진화경로에서 발생할수 있는 돌연변이의 최소 수를 측정합니다
이를 해밍거리(Hamming distance)라고 합니다.
GAGCCTACTAACGGGAT
CATCGTAATGACGGCCT
^ ^ ^ ^ ^ ^^
위의 DNA가닥 사이의 해밍거리는 7입니다 .
@
TestCode
JUnit의 Rule이란? - @Rule
- Rule은 테스트 클래스에서 동작 방식을 재정의 하거나 쉽게 추가하는 것을 가능하게 합니다.
- 사용자는 기존의 Rule을 재사용하거나 확장하는 것이 가능합니다
JUnit의 Rule 또는 CustomRule - https://nesoy.github.io/articles/2018-12/Junit-Rule
@JvmField란 ?
@JvmField
는 getter/setter의 생성을 방지하는 어노테이션입니다.
해결 1) throwException, forEach를 사용한 해결방안
input1과 input2의 사이즈가 다르면 IllegalArgumentException을 던지고
input의 배열을 순회하며 input2[index]와 비교하여 내용이 다르다면 count를 증가시킨다.
해결 2) zip, count ,require를 사용한 해결방안
zip 함수는
infix fun CharSequence.zip(
other: CharSequence
): List<Pair<Char, Char>>
println(result) // [az, by, cx]
위와같이 같은인덱스의 스트링을 비교하여 List<Pair<Char,Char>를 리턴합니다.
그리고 Pair의 first와 second를 비교하여 다른 것의 개수를 리턴합니다.
코틀린 공식문서 zip - https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/zip.html
코틀린 공식문서 count - https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/count.html
'Kotlin > Exercise' 카테고리의 다른 글
Twofer - 스트링 리턴하기 (2) | 2019.03.03 |
---|---|
윤년 찾기 (4) | 2019.03.03 |
영어에서 돼지 라틴어로 번역하기 (2) | 2019.02.24 |
Isogram인지아닌지 판단하기 (2) | 2019.02.24 |
Raindrop - 숫자를 문자열로 변환하기 (2) | 2019.02.23 |
댓글