[백준] 문자열 (1120)(kotlin)

문제 설명

백준 1120번 문제 링크

입력 및 출력

» 입력

첫째 줄에 A와 B가 주어진다. A와 B의 길이는 최대 50이고, A의 길이는 B의 길이보다 작거나 같고, 알파벳 소문자로만 이루어져 있다.

» 출력

A와 B의 길이가 같으면서, A와 B의 차이를 최소가 되도록 했을 때, 그 차이를 출력하시오.

예제 입출력(테스트케이스)

입력 출력
adaabc aababbc 2

문제 풀이1

fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
    val (a, b) = readLine().split(" ")
    var ans = a.length

    for (i in 0 .. (b.length - a.length)) {
        var tmp = 0

        for (j in a.indices)
            if (a[j] != b[j + i]) tmp++

        if (ans > tmp) ans = tmp
    }
    
    println(ans)
}

// e.g.
// a: aaa, b: abcabc
// repeat : 4 (0 .. b.length - a.length)
// for 1    (a[i]의 *은 b[i]의 Char와 같다고 가정)
// abcabc
// abc*** -> 0(diff)
// for 1
// abcabc
// *aaa** -> 2(diff)
// for 2
// abcabc
// **abc* -> 3(diff)
// for 3
// abcabc
// ***abc -> 0(diff)