반응형
```
백준 3449번 해밍 거리 Kotlin 구현해 보기
```
이번 글을 통해 배워갈 내용
- 백준 3449번 해밍 거리 풀이
https://www.acmicpc.net/problem/3449
백준 3449번 해밍거리는
난이도 브론즈 등급의 문제로서
테스트케이스만큼
두 이진수가 주어지면
두 이진수에 각 자릿수별로 다른 값을 세서 출력해 주면 됩니다.
30분 정도 위에 링크를 방문하셔서 풀어보시고
안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.
자릿수가 같은 수가 입력된다는 전제하에
각 자릿수를 비교해서
출력해 줍니다.
fun main() {
val inputDto = getInput()
print(solution(inputDto))
}
fun getInput(): InputDto {
val testCaseCount = readln().toInt()
val pairs = emptyList<NumPair>().toMutableList()
for (i in 1..testCaseCount) {
val numA = readln()
val numB = readln()
pairs.add(NumPair(numA, numB))
}
return InputDto(pairs)
}
data class InputDto(
val pairs: List<NumPair>
)
data class NumPair(
val numA: String,
val numB: String
)
fun solution(dto: InputDto): String {
return dto.pairs.joinToString("\n") { pair -> findHammingDistance(pair) }
}
fun findHammingDistance(pair: NumPair): String {
var distance = 0
for (i in 0 until pair.numA.length) {
if (pair.numA[i] != pair.numB[i]) {
distance++
}
}
return "Hamming distance is ${distance}."
}
// https://codemasterkimc.tistory.com/
테스트
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
internal class MainKtTest {
@Test
fun test() {
assertEquals(
"Hamming distance is 1.",
findHammingDistance(NumPair("0", "1"))
)
assertEquals(
"Hamming distance is 16.",
findHammingDistance(NumPair("1111111100000000", "0000000011111111"))
)
}
}
읽어주셔서 감사합니다
무엇인가 얻어가셨기를 바라며
오늘도 즐거운 코딩 하시길 바랍니다 ~ :)
728x90
반응형
'Kotlin > Kotlin 알고리즘' 카테고리의 다른 글
백준 2110번 공유기 설치 Kotlin 구현해보기 (0) | 2023.03.17 |
---|---|
백준 2470번 두 용액 Kotlin 구현해보기 (0) | 2023.03.15 |
백준 3060번 욕심쟁이 돼지 Kotlin 구현해보기 (0) | 2023.03.13 |
백준 3059번 등장하지 않는 문자의 합 Kotlin 구현해보기 (0) | 2023.03.13 |
백준 20920번 영단어 암기는 괴로워 Kotlin 구현해보기 (0) | 2023.03.12 |