Recommended
PDF
PDF
PDF
PPT
PPTX
PPTX
PPTX
PDF
Recursion - Computer Algorithms
PDF
PDF
알고리즘 연합캠프 세미나 1-C (알고리즘 설계와 모델링 및 수학)
PDF
프로그래머스 데브코스에서 진행한 스터디 강의 자료입니다(코딩테스트-파이썬 편)
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
파이썬 문자열 이해하기
PDF
Algorithms summary korean
PPT
String Searching Algorithms
PPTX
PDF
대규모서비스를지탱하는기술 7
PPTX
PPTX
PPTX
Udk]static mesh & material
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
More Related Content
PDF
PDF
PDF
PPT
PPTX
PPTX
PPTX
PDF
Recursion - Computer Algorithms
Similar to 문자열 검색 (1)
PDF
PDF
알고리즘 연합캠프 세미나 1-C (알고리즘 설계와 모델링 및 수학)
PDF
프로그래머스 데브코스에서 진행한 스터디 강의 자료입니다(코딩테스트-파이썬 편)
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
파이썬 문자열 이해하기
PDF
Algorithms summary korean
PPT
String Searching Algorithms
PPTX
PDF
대규모서비스를지탱하는기술 7
More from Young-jun Jeong
PPTX
PPTX
PPTX
Udk]static mesh & material
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
PPTX
문자열 검색 (1) 1. 2. 3. 탐색 알고리즘의 종류데이터 안에서 특정 패턴을 찾아내는 방법본문 : 검색 대상이 되는 문자열패턴 : 검색어Shift: 탐색위치를 옮기는 것문자열 검색이란? 4. 검색 알고리즘의 공부다양한 활용분야게임개발에도 쓰인다대부분 만들어져 있는것을 잘 활용하는 것하지만 직접 만들어야 될 수도 있다.왜 알아야 하는가? 5. 6. 다양한 분야에서 쓰이는 응용 사례Search EngineData ParsingData Compress, Encoding/DecodingQueryText EditorLanguage Code비속어 필터링, 채팅창 명령, 커뮤니티 부분 활용 등작업 분야에 따라 그리 소용 없을지도… 왜 그럴까?문자열 비교는 정말 느리다! 다른 타입으로 비교하자!왜 알아야 하는가? 7. 유치원(?)에서나 배울 것 같은 방법맨 처음 생각하게 되는 가장 단순한 방법본문(앞/뒤)에서 부터 순차적으로 패턴(앞/뒤)를 검사하는 방식BrutalForce (Naïve Search) 8. 9. 10. 11. 12. 13. 목표 상태가 굳이 하나일 필요가 없다.즉, 검색 과정에서 중간 결과를 도출 할 수도 있다.입력 문자 타입이 많으면 공간을 많이 차지하므로 좋지 않다.O(n) 의 복잡도를 보여준다.테이블을 미리 만드는 작업에 대한 복잡도 고려 필요오토마타를 활용한 검색 14. 증분 검색이란?사용자가 글자를 입력하는 중에 계속적으로 해당 내용을 찾아주는 기능.오토마타를 활용한 검색을 이용해 볼 수 있는 방법.Visual Studio 에서는 CTRL + I, CTRL + SHIFT + ICTRL + F 보다 편하죠?쉬어 갑니다. 15. 16. 패턴 문자를 해쉬와 공식을 사용해서 숫자로 바꿔준다.본문의 비교 문자열도 똑같은 공식으로 숫자로 바꿔준다.숫자 대 숫자 비교를 하게 된다.라빈– 카프 알고리즘 17. 패턴의 문자들을 이용해 수치화 한다.예: Σ = {a, b, c, d, e}• |Σ| = 5• a, b, c, d, e를 각각 0, 1, 2, 3, 4에 대응시킨다• 문자열 “cad”를 수치화하면 2*52+0*51+3*50 = 28라빈– 카프 알고리즘 18. 19. 20. 21. 라빈– 카프 알고리즘패턴에 대한 수치화 값 계산할때나머지 연산 하기도 전에 계산 하다가 오버 플로우 날수도 있겠네요…패턴의 길이를 무작정 길게 쓸수는 없으니 글자 수를 꽤 짧게 제한해야 겠네요… 22. 23. 라빈– 카프 알고리즘검색 위치 이동후에는 해당 자리수의 해쉬값에서 빠져나간 앞칸 값을 빼고 새로 추가된 해쉬값을 더해준다.해당 공식을 매번 할 필요는 없다. 24. 이게 다일까요? 천만에요…다음주 KMP, Boyer-Moore 를 기대하세요…무식하게 검색한다. BrutalForce(Naïve)검색 패턴의 해결 절차를 만든다. 오토마다.해쉬를 이용해 수치비교 한다. 라빈-카프정리 25. 문자열 알고리즘 종류를 간단히(?) 알고 싶다면…(정형/비정형)검색, 색인을 알고 싶다면…If (Iterator == here) 26. Brute force algorithmSearch with an automaton KarpRabinalgorithmShift Or algorithmMorrisPrattalgorithmKnuthMorrisPrattalgorithmimon algorithmolussialgorithm alilGiancarloalgorithmApostolicoCrochemore algorithm Not So Naive algorithm Forward Dawg Matching algorithm BoyerMoorealgorithmTurboBM algorithm ApostolicoGiancarloalgorithmReverse ColussialgorithmHorspool algorithmQuick Search algorithmTuned BoyerMoorealgorithmZhuTakaokaalgorithmBerryRavindran algorithm Smith algorithmRaitaalgorithmReverse Factor algorithmTurbo Reverse Factor algorithmBackward Oracle Matching algorithm GalilSeiferasalgorithmTwo Way algorithmString Matching on Ordered Alphabets Optimal Mismatch algorithm Maximal Shift algorithmSkip Search algorithmKmpSkip Search algorithm Alpha Skip Search algorithm (참고1) 문자열 알고리즘 종류 27.