망각에 재주 있는 나를 위해 기록하는 곳.

나이브 문자열 검색(Naive String Search) 본문

자료구조&알고리즘

나이브 문자열 검색(Naive String Search)

baobabtree 2023. 4. 10. 22:08

같은 패턴의 문자열을 검색하는 단순한 방법.

예를 들어, "moghohoi pqoiwhoimq" 라는 (아무거나쓴거) 문자열이 있을때 "hoi"라는 같은 패턴의 문자열을 찾는 것이다.

 

Naive String Search Pseudocode:

  1. 긴문자열을 반복하는 루프 작성. (long)
  2. 찾을 패턴인 문자열을 반복하는 루프 작성.(short)  패턴의 문자열의 길이는 대상 긴문자열 보다 짧거나 같아야한다. 더 길 수 없다.
  3. 루프안에서 문자열이 일치하지 않으면 break한다.
  4. 일치하는 문자열이 있다면 패턴 문자열이 다 맞는지 계속 검색 진행.
  5. 패턴과 일치하는 문자열을 찾으면 count를 +1하고 검색을 마치면 return.

 

function naiveSearch(long, short){
    var count = 0;
    for(var i = 0; i < long.length; i++){
        for(var j = 0; j < short.length; j++){
           if(short[j] !== long[i+j]) break;
           if(j === short.length - 1) count++;
        }
    }
    return count;
}
-------------------------------------------
naiveSearch("moghohoi pqoiwhoimq", "hoi")
>> 2

'자료구조&알고리즘' 카테고리의 다른 글

정렬(sorting)  (0) 2023.04.10
이진검색(Binary Search)  (0) 2023.04.10