문제
TIP
1. 두 단어를 비교하여 같이 만들어주어야 할 때, 실제로 같이 만들어 줄 필요가 없다.
2. 두 단어를 비교할 때 단어를 실제로 줄이고 늘리고 할 필요 없이 단어 길이의 차이만큼 반복하거나 인덱스를 이동하므로써 해결 할 수 있는 경우가 많다.
CODE
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
|
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
int answer = 9999;
string a;
string b;
cin >> a;
cin >> b;
int diffLength = b.size() - a.size();
for(int i=0; i<=diffLength;i++) {
int count = 0;
for(int j=0; j<a.size(); j++){
if(a[j] != b[j+i]){
count++;
}
}
answer = min(answer,count);
}
cout << answer;
return 0;
}
|
문제
TIP
1. 역시 두 단어를 비교하는 문제이다. 문자열을 자르는 것이 아닌 인덱스를 길이의 차이만큼 이동하는 방법을 생각해보자.
2. 비교해야할 SubString(작은 길이의 단어)를 모두 비교해야 한다. 정규식을 사용하지 못한다면, for문을 이용해서 일일이 비교한다.
CODE
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
|
#include <iostream>
#include <string>
using namespace std;
string S, subS;
int main(void) {
getline(cin, S);
getline(cin, subS);
if (subS.size() > S.size()) {
cout << 0 << "\n";
} else {
int result = 0;
for (int i = 0; i < S.size() - subS.size() + 1; i++) {
bool same = true;
for (int j = 0; j < subS.size(); j++){
if (S[i + j] != subS[j]) {
same = false;
break;
}
}
if (same) {
result++;
i += subS.size() - 1;
}
}
cout << result << "\n";
}
return 0;
}
|
문제
TIP
1. 앞 뒤의 공백이 문제가 되는 경우가 있다 trim 메소드의 사용법 혹은 지원하지 않는 경우 어떻게 구현할 것인지 고민하자.
2. 역시 실제로 자르거나 할 필요는 없다.
CODE
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
36
37
|
#include <iostream>
#include <string>
using namespace std;
int main(void) {
string target;
getline(cin,target);
int targetLength = target.length();
int wordLength = 1;
for(int i = 0; i<target.size(); i++) {
if(target.at(i) == ' ') {
wordLength++;
}
}
for(int i = 0; i<target.size(); i++) {
if(target.at(i) != ' ') {
break;
}
wordLength--;
}
for(int i = target.size()-1; i>=0; i--) {
if(target.at(i) != ' ') {
break;
}
wordLength--;
}
cout <<wordLength;
return 0;
}
|
'Algorithm' 카테고리의 다른 글
[탐욕법,LIS] 반도체 설계(최장증가수열) (0) | 2019.09.11 |
---|---|
[탐욕법] DNA (특정 요소의 개수 세기) (0) | 2019.09.02 |
탐욕법 (0) | 2019.08.06 |
[DFS/BFS] 여행경로 (0) | 2019.07.28 |
[스택/큐2] 기능개발, 주식가격, 계산기 (0) | 2019.07.27 |