제이슨의 개발이야기

코틀린 백준 1120 번 문자열 본문

코딩테스트

코틀린 백준 1120 번 문자열

제이쓰은 2022. 4. 21. 00:08
728x90
반응형

https://www.acmicpc.net/problem/1120

 

1120번: 문자열

길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의

www.acmicpc.net

 

 

안녕하세요!

오늘은 실버 4 

문자열 문제를 풀어봤습니다

실버 4 문제라서 난이도는 쉬운 수준의 문제였습니다! 

 

문자열 성공

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초  128 MB 13992 7426 6467 54.290%

문제

길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다.

두 문자열 A와 B가 주어진다. 이때, A의 길이는 B의 길이보다 작거나 같다. 이제 A의 길이가 B의 길이와 같아질 때 까지 다음과 같은 연산을 할 수 있다.

  1. A의 앞에 아무 알파벳이나 추가한다.
  2. A의 뒤에 아무 알파벳이나 추가한다.

이때, A와 B의 길이가 같으면서, A와 B의 차이를 최소로 하는 프로그램을 작성하시오.

입력

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

출력

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

예제 입력 1 복사

adaabc aababbc

예제 출력 1 복사

2

예제 입력 2 복사

hello xello

예제 출력 2 복사

1

 

 


이 문제는 실제로 

알파벳을 붙이면서 비교하는 것이 아닌 

문자 A 가 문자 B와 얼마나 다른지 확인만 하면 되는 간단한 문제입니다 

 

이중 for문을 이용해서 

비교 시작 문자열이 0 부터 시작해서 문자 A 와 B의 길이 차이만큼 반복해서 

비교합니다!

val bre = System.`in`.bufferedReader()
fun main() = with(System.out.bufferedWriter()){

   var strArray = bre.readLine().split(" ")

    var answer = Integer.MAX_VALUE

    for(i in 0.. (strArray[1].length - strArray[0].length)){
        var count =0
        for(j in strArray[0].indices){
            if(strArray[1].toCharArray()[j+i]!=strArray[0].toCharArray()[j]){
                count++
            }

        }

        answer = Math.min(count,answer)
    }

    println(answer)
}
728x90
반응형