반응형
https://www.acmicpc.net/problem/1543
모든 경우의 수를 탐색하는 brute force문제였습니다.
📕 풀이방법
📔 입력 및 초기화
문서 docs, 검색 단어 searchWord, 정답 ans, 일치하는 문자 수를 저장할 변수 cnt, 단어의 길이 wordSize, 문서의 길이 docsSize를 저장합니다. 이후 docs와 searchWord에 문자열을 한 줄씩 입력받습니다.
📔 풀이과정
문서 전체에 대해 for loop를 수행합니다. 현재 확인하는 문서의 문자가 찾으려는 단어의 첫 번째와 같을 때까지 continue해 줍니다.
첫째가 같다면 이제 wordSize만큼 for loop를 수행해 단어를 확인하면서 docs와 일치하지 않을 때까지 cnt를 증가시켜줍니다.
확인한 이 후 cnt값이 wordSize라면 모두 일치했으므로 하나를 찾은 것 입니다. 따라서 ans를 증가시켜주며 wordSize - 1만큼 index를 건너뛰어 줍니다.
📔 정답출력
ans를 출력해줍니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
string docs,searchWord;
int ans, cnt, wordSize, docsSize;
int main(){
getline(cin,docs);
getline(cin,searchWord);
for(int i = 0; i < docsSize; i++){
cnt = 0;
wordSize = searchWord.size();
if(docs[i] != searchWord[0]) continue;
for(int j = i; j < i + wordSize; j++,cnt++)
if(docs[j] != searchWord[j-i] )
break;
if(cnt == wordSize){
ans++;
i += wordSize-1;
}
}
cout << ans;
}
'Algorithm > Brute Force' 카테고리의 다른 글
(C++) - 백준(BOJ) 5671 : 호텔 방 번호 (0) | 2022.05.01 |
---|---|
(C++) - 백준(BOJ) 16173 : 점프왕 쩰리 (Small) (0) | 2022.04.27 |
(C++) - 백준(BOJ) 14912 : 숫자 빈도수 (0) | 2022.04.20 |
(C++) - 백준(BOJ) 15489 : 파스칼 삼각형 (1) | 2022.04.18 |
(C++) - 백준(BOJ) 8892 : 팰린드롬 (0) | 2022.04.17 |