1120번: 문자열백준/문제2023. 9. 22. 11:14
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/1120
언어 : Kotlin
문제 설명 :
길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다.
두 문자열 A와 B가 주어진다. 이때, A의 길이는 B의 길이보다 작거나 같다. 이제 A의 길이가 B의 길이와 같아질 때 까지 다음과 같은 연산을 할 수 있다.
- A의 앞에 아무 알파벳이나 추가한다.
- A의 뒤에 아무 알파벳이나 추가한다.
이때, A와 B의 길이가 같으면서, A와 B의 차이를 최소로 하는 프로그램을 작성하시오.
- 첫째 줄에 A와 B가 주어진다. A와 B의 길이는 최대 50이고, A의 길이는 B의 길이보다 작거나 같고, 알파벳 소문자로만 이루어져 있다.
- A와 B의 길이가 같으면서, A와 B의 차이를 최소가 되도록 했을 때, 그 차이를 출력하시오.
제한 사항 :
- 시간 제한 : 2초
- 메모리 제한 : 128MB
입출력 예 :
입력 | 출력 |
adaabc aababbc | 2 |
hello xello | 1 |
koder topcoder | 1 |
abc topaabcoder | 0 |
giorgi igroig | 6 |
풀이 :
import java.io.BufferedWriter
import java.io.OutputStreamWriter
fun main() = with(System.`in`.bufferedReader()) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
val (a, b) = readLine().split(" ")
var result = a.length
for (i in 0 .. (b.length - a.length)) {
var temp = 0
for (j in a.indices) { if (a[j] != b[j + i]) temp++ }
if (result > temp) result = temp
}
bw.write("$result")
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
10824번: 네 수 (1) | 2023.09.26 |
---|---|
10825번: 국영수 (0) | 2023.09.25 |
1357번: 뒤집힌 덧셈 (0) | 2023.09.22 |
2110번: 공유기 설치 (0) | 2023.09.21 |
2309번: 일곱 난쟁이 (0) | 2023.09.20 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!