[백준] 문자열 (1120)(kotlin)
문제 설명
입력 및 출력
» 입력
첫째 줄에 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)