알고리즘/구현,시뮬

BOJ - 1120 ) 문자열

개발자가될수있을까? 2021. 9. 13. 22:45


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


두 문자열의 차이를 최소로하기위하여, 이후 추가하는 문자열은 같다고 생각한다.

 

즉 긴문자열에 대해서 짧은 문자열을 이동시키면서 다름이 최소가되는 값을 찾으면 된다.


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class 문자열1120 {

	public static void main(String[] args) throws IOException {
		
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		String a , b ;
		a = st.nextToken();
		b = st.nextToken();
		int min = 51;
		
		for(int i=0;i<=b.length()-a.length();i++) {
			int cnt =0;
			for(int j=0;j<a.length();j++) {
				if(a.charAt(j) != b.charAt(j+i)) {
					cnt++;
				}
			}
			min = min > cnt ? cnt : min;
		}
		System.out.println(min);
	}
}