반응형
문제 출처: https://www.acmicpc.net/problem/1120
1. 문제 접근방식
- 문자열이 두개 주어졌을 때 길이를 맞추기 위해 가장 최소의 문자를 쓸 수 있는 자리를 골라야한다. 최소의 개수를 구하기 위해서는 문자열 중 긴 문자열을 돌며 짧은 문자열과 가장 같은 문자가 많은 자리를 정하면 된다.
2. 내가 푼 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class boj1120 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input = br.readLine().split(" ");
System.out.println(solve(input[0], input[1]));
}
static int solve(String str1, String str2) {
int min = Integer.MAX_VALUE;
for (int i = 0; i <= str2.length() - str1.length(); i++) {
int cnt = 0;
for (int j = 0; j < str1.length(); j++) {
if (str1.charAt(j) != str2.charAt(i + j)) {
cnt++;
}
}
if (cnt < min) {
min = cnt;
}
}
return min;
}
}
3. 결과 및 느낀점
- 브루트포스 알고리즘 그 자체인 문제였다. 처음 어떤 식으로 할지만 생각하면 구현은 어렵지 않은 문제인 듯 하다.
반응형
'개인 공부 > Algorithm' 카테고리의 다른 글
[Baekjoon/백준] 12904 JAVA (0) | 2021.08.04 |
---|---|
[Baekjoon/백준] 1013 JAVA (0) | 2021.08.03 |
[Baekjoon/백준] 11659 JAVA (0) | 2021.08.01 |
[Baekjoon/백준] 9095 JAVA (0) | 2021.07.31 |
[Baekjoon/백준] 11651번 JAVA (0) | 2021.07.30 |