알고리즘

[백준, 자바, 1120번] 문자열

hminor 2024. 1. 10. 11:45

풀이

  • 해당 문제는 입력 받은 b의 문자열을
  • a 문자열이 한칸씩 이동하면서
  • 가장 오답이 적은 cnt를 찾아 간단히 해결
  • result의 초기값을 50이라고 둔 것은 최대 길이가 50이라고 했기 때문.

 

import java.io.*;
import java.util.*;

public class 문자열 {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        String a = st.nextToken();
        char[] a_li = a.toCharArray();
        String b = st.nextToken();
        char[] b_li = b.toCharArray();
        Integer result = 50;

        for (int i = 0; i < b.length()-a.length()+1; i++) {
            Integer cnt = 0;
            for (int j = 0; j < a.length(); j++) {
                if (a_li[j] != b_li[i+j]) cnt += 1;
            }
            if (result > cnt) result = cnt;
        }
        System.out.println(result);
    }
}