728x90
1. 문제
길이가 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의 차이를 최소로 하는 프로그램을 작성하시오.
2. 풀이
A와 B를 입력받은 뒤 B기준으로 시작지점을 조절해서 다른 값을 체크한다.
A는 항상 0부터, B는 시작지점+현재a인덱스로 계산해서 비교해야한다.
import java.io.*;
import java.util.*;
public class BOJ_1120_문자열 {
public static void main(String[] args) throws IOException {
StringTokenizer st = new StringTokenizer(new BufferedReader(new InputStreamReader(System.in)).readLine());
String A = st.nextToken();
String B = st.nextToken();
int ans = A.length();//최대값
int cnt;
for(int i=0;i<B.length()-A.length()+1;i++){
cnt = 0;
for(int j=0;j<A.length();j++){
if(A.charAt(j) != B.charAt(i+j)) cnt++;
}
if(cnt<ans) ans = cnt;
}
System.out.println(ans);
}
}
3. 결과
'코딩테스트 > BOJ' 카테고리의 다른 글
[BOJ] 1058 친구 - JAVA (0) | 2022.06.05 |
---|---|
[BOJ] 1024 수열의 합 - JAVA (0) | 2022.06.04 |
[BOJ] 13458 시험감독 - JAVA (0) | 2022.05.23 |
[BOJ] 11559 PuyoPuyo - JAVA (0) | 2022.05.22 |
[BOJ] 16235 나무재테크 - JAVA (0) | 2022.05.21 |
댓글