반응형
문제 출처: https://www.acmicpc.net/problem/1120
1. 문제 접근방식
두 문자열을 비교할 때 길이가 같아질 때까지 A 문자열 앞뒤로 아무 문자열을 추가한다는 조건이 있다.
이러한 조건을 잘 생각해 보면 A 문자열에 아무 문자나 추가할 때 B와 최대한 같은 문자를 추가하면 되는 것이고 이 말인즉슨
B 문자열 내에서 반복문을 돌며 A 문자열과의 차이가 최소가 되도록 하는 시점을 찾으면 되는 것이다.
단순히 A 문자열을 B 문자열 내에서 돌아가면서 차이를 비교하는 문제로 전형적인 브루트 포스 문제라고 볼 수 있다.
2. 내가 푼 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class boj1120 {
static String A, B;
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
input();
solve(A, B);
System.out.println(sb.toString());
}
static void input() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
A = st.nextToken();
B = st.nextToken();
}
static void solve(String x, String y) {
int min = x.length();
for (int i = 0; i <= y.length() - x.length(); i++) {
int cnt = 0;
for (int j = 0; j < x.length(); j++) {
if (x.charAt(j) != y.charAt(i + j))
cnt++;
}
if (min > cnt) {
min = cnt;
}
}
sb.append(min);
}
}
반응형
'개인 공부 > Algorithm' 카테고리의 다른 글
[Baekjoon/백준] 10974 JAVA (0) | 2022.03.12 |
---|---|
[Baekjoon/백준] 17614 JAVA (0) | 2022.03.09 |
[Baekjoon/백준] 1476 JAVA (0) | 2022.03.06 |
[Baekjoon/백준] 4796 JAVA (0) | 2021.08.27 |
[Baekjoon/백준] 14916 JAVA (0) | 2021.08.25 |