반응형

문제 출처 :


https://www.acmicpc.net/problem/1120



알고리즘 분석 :


문제 해결에 필요한 사항

1. 단순한 생각

2. brute force


앞으로 넣거나 뒤로 넣어도 된다고 하여 deque를 이용한다, 스택, 큐를 이용한다는 그런 생각보다는


일단 이 문제의 최대 범위를 확인해보면 50밖에 안되니 그냥 brute force로 해결 할 수 있는 문제이다.


괜히 더 생각을 깊게하면 꼬이게 되고, 자칫하면 brute force보다 더 안좋은 결과를 초래할 수 있다.


이 코드는 


A : abcd

B : abcdefg 면


A :  abcd

B : abcdefg 


A :    abcd

B : abcdefg 


A :     abcd

B : abcdefg 


이런식으로 비교하는 알고리즘이다.



소스 코드 : 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <string>
 
#define INF 9999
 
using namespace std;
 
int main()
{
    int d, min = INF;
    int lenA, lenB;
    
    string a, b;
 
    cin >> a >> b;
 
    lenA = a.length();
    lenB = b.length();
    
    for (int i = 0; i <= lenB - lenA; i++)
    {
        d = 0;
        for (int j = 0; j < lenA; j++)
            a[j] != b[i + j] ? d++ : 0;
 
        if (min > d)
            min = d;
    }
    cout << min;
 
    return 0;
}
 
//                                                       This source code Copyright belongs to Crocus
//                                                        If you want to see more? click here >>
Crocus


반응형

'Applied > 알고리즘 문제풀이' 카테고리의 다른 글

[13414번] 수강신청  (0) 2016.11.06
[2643번] 색종이 올려 놓기  (2) 2016.11.06
[10824번] 네 수  (0) 2016.11.03
[13420번] 사칙연산  (0) 2016.11.03
[9934번] 완전 이진 트리  (0) 2016.11.03