
문제가 조금 복잡하지만 해석하자면
두개의 문자열을 입력받아
앞의 문자열을 뒤에 문자열에 포함시키기 위해
최소 몇번 바꿔야하는지 구하는 문제입니다
XXX OOOOO가 입력되었다면
XXX
OOOOO
XXX
OOOOO
XXX
OOOOO
이렇게 3번의 경우를 계산해서
최소값을 찾읍시다
코드입니다
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
String str1 = st.nextToken();
String str2 = st.nextToken();
int n = str1.length();
int m = str2.length();
int[] arr = new int[m-n+1];
for(int i=0; i<=m-n; i++) {
int count=0;
for(int j=i;j<i+n;j++) {
if(str1.charAt(j-i)!=str2.charAt(j)) {
count += 1;
}
arr[i] = count;
}
}
Arrays.sort(arr);
System.out.println(arr[0]);
}
}
if절이 핵심입니다
str1과 str2를 하나하나 비교해서
다른만큼 count해서 arr배열에 넣어줬고
arr의 최소값을 출력했습니다
'백준 문제풀기 > JAVA' 카테고리의 다른 글
[백준 2355 JAVA 자바] 시그마 (0) | 2023.08.23 |
---|---|
[백준 2022 JAVA 자바] 사다리 (1) | 2023.08.23 |
[백준 2506 JAVA 자바] 점수계산 (0) | 2023.08.21 |
[백준 11005 JAVA 자바] 진법 변환2 (0) | 2023.08.21 |
[백준 4504 JAVA 자바] 배수 찾기 (0) | 2023.08.20 |