:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
12/05/31 13:24
Brute Forcing으로 구현한다면, 원하는 키워드를 놓고 한 칸씩 움직여가면서 텍스트를 매칭하거나, 혹은 토크나이징을 하시겠다면 토큰 단위로 만들어놓고 앞에서부터 차례로 매칭해보는 방법을 쓰면 되겠지요. 예를 들어서, 토큰으로 나뉘어져 있는 텍스트가 있고 원하는 키워드가 ranking site라면, 첫 번째 토큰이 ranking & 두 번째 토큰이 site인지 검사 / 두 번째 토큰이 ranking & 세 번째 토큰이 site인지 검사 / .... 이런 식으로 n번째 토큰이 ranking이고 n+1번째 토큰이 site가 되는지 검사해서 그 수를 카운팅하는 방법이 가장 기본적인 방법이 되겠죠. 구현은 for문을 두 개 중첩해서 구현하시면 되고, 시간 복잡도는 키워드의 길이가 M이고 텍스트 길이가 N일때 O(NM) 이 되겠죠.
그런데 이 방법은 실제로 사용하기에는 너무 느리구요. 스트링 매칭을 위한 전문적인 알고리즘이 많이 알려져 있습니다. 대표적으로 KMP나 Boyer-Moore 알고리즘 등등.... 구글에 검색해보세요.
12/05/31 13:27
간단히 메쏘드를 사용하시려면...
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#indexOf(java.lang.String, int)
|