정보관리기술사 토픽/알고리즘 3

(알고리즘 토픽) 세상에서 가장 빠른 탐정이 되는 법! 문자열 검색 알고리즘

1. 문자열 검색 알고리즘이란?문자열 검색 알고리즘은 긴 텍스트에서 특정 단어나 문장을 찾아내는 방법을 말합니다. 예를 들어, 수백 장의 책에서 특정 단어를 찾는다고 상상해보세요. 모든 페이지를 처음부터 끝까지 읽는 건 너무 비효율적이겠죠? 문자열 검색 알고리즘은 이러한 작업을 '탐정의 직감'처럼 빠르고 효율적으로 만들어줍니다.2. 대표적인 문자열 검색 알고리즘(1) 브루트 포스 (Brute Force)가장 단순한 방법입니다. 긴 텍스트에서 첫 번째 글자부터 차례로 하나씩 비교합니다. 마치 사전을 처음부터 끝까지 넘기며 단어를 찾는 것과 같습니다.장점: 단순하고 이해하기 쉽습니다.단점: 느립니다. 특히 텍스트가 길고 패턴이 복잡할수록 시간이 오래 걸립니다.비유: 브루트 포스는 "모든 열쇠를 하나씩 대입해..

(알고리즘 토픽) 알고리즘적 효율성, 트리순회

트리 순회(tree traversal)는 알고리즘과 자료 구조에서 매우 중요한 개념으로, 트리 구조에 있는 모든 노드를 특정 순서에 따라 방문하는 방법입니다. 트리 순회를 이해하는 데 있어서, 마치 방을 여러 개 가진 큰 집을 탐험하는 것과 비슷하다고 생각할 수 있습니다. 각 방은 하나의 노드이며, 이 방들을 다양한 방법으로 방문할 수 있죠. 여기서는 트리 순회의 기본적인 세 가지 방법인 전위(preorder), 중위(inorder), 후위(postorder) 순회를 비유와 함께 살펴보겠습니다. 1. 트리의 기본 구조와 순회의 필요성트리는 계층적 구조를 가지며, 하나의 부모가 여러 자식을 가질 수 있는 구조입니다. 예를 들어, 회사의 조직도나 가계도가 트리 구조에 해당하죠. 트리를 탐색할 때 모든 노드를..

(알고리즘 토픽)빠르고 똑똑하게 텍스트 속에서 원하는 단어 찾기, 보이어-무어 알고리즘

텍스트에서 특정 단어나 패턴을 찾으려 할 때 보통 앞에서부터 차근차근 비교하면서 찾습니다. 그런데 이런 방식은 긴 텍스트에서는 시간이 많이 걸리겠죠? 그래서 효율적으로 검색할 수 있는 보이어-무어(Boyer-Moore) 알고리즘이 등장하게 되었습니다! 이 알고리즘은 일반적인 검색 방법보다 빠르게 검색할 수 있어 긴 텍스트에서 아주 유용하게 쓰입니다. 그렇다면 보이어-무어 알고리즘이 어떻게 빠르게 작동하는지 알아볼까요?  보이어-무어의 비밀: 똑똑한 두 가지 규칙보이어-무어 알고리즘은 두 가지 핵심 규칙을 사용해 불필요한 비교를 줄입니다. 이 두 규칙은 검색하려는 패턴과 텍스트가 일치하지 않는 경우, 얼마나 패턴을 오른쪽으로 건너뛰어 이동할지 결정해 줍니다.1. 나쁜 문자 규칙 (Bad Character ..