알고리즘
-
그리디(Greedy) 알고리즘Algorithm & Data Structure/Algorithm 2024. 10. 26. 16:06
그리디(탐욕) 알고리즘은 매 순간 최적의 선택을 함으로써 전체 최적해에 도달하려는 알고리즘입니다. 즉, 문제 해결 과정에서 지금 당장 가장 좋아 보이는 선택을 계속해서 하는 방식입니다. 이러한 선택들은 각 단계에서 부분적인 최적해를 구성하고, 최종적으로 전체 최적해를 구성하는 데 도움을 줍니다.그리디 알고리즘의 특징국소 최적 선택(Local Optimal Choice): 그리디 알고리즘은 각 단계에서의 최적해를 구하려고 합니다. 이는 전체 문제의 최적해를 보장하기보다는 각 단계의 최적해를 보장하는 접근 방식입니다.문제 분할: 큰 문제를 여러 단계의 작은 문제로 나눕니다. 매 단계에서 현재 상황에서 최적의 선택을 하고, 그 선택을 기반으로 다음 단계로 넘어갑니다.한 번의 선택: 한 번 내린 선택은 이후의 ..
-
조합(Combination)과 순열(Permutation)Algorithm & Data Structure/Algorithm 2024. 5. 4. 17:28
조합 (Combination) 조합은 주어진 집합에서 몇 개의 원소를 선택할 때, 선택 순서를 고려하지 않고 몇 가지 방법으로 선택할 수 있는지를 나타냅니다. 다시 말해, 조합은 "n개 중에서 k개를 선택하는 방법의 수"를 의미합니다. 예를 들어, 'A', 'B', 'C' 세 개의 원소에서 두 개를 선택하는 조합을 생각해 보면, 가능한 조합은 ('A', 'B'), ('A', 'C'), ('B', 'C')로 총 세 가지입니다. 여기서 중요한 점은 순서가 결과에 영향을 주지 않는다는 것입니다. 즉, ('A', 'B')와 ('B', 'A')는 같은 조합으로 간주됩니다.package mainimport ( "fmt")// combination 함수는 재귀적으로 조합을 생성하고 출력합니다.func combi..
-
BM25 알고리즘이란?Search & AI/Search 2024. 4. 11. 13:05
BM25 알고리즘은 정보 검색 분야에서 문서의 관련성을 평가하기 위해 사용되는 랭킹 함수입니다. 이 알고리즘은 사용자의 검색 쿼리에 가장 잘 매치되는 문서를 찾아 순위를 매기는 데 사용됩니다. BM25는 TF-IDF(Term Frequency-Inverse Document Frequency) 모델을 개선한 것으로, 문서 내 특정 단어의 빈도수와 문서집합 전체에서 그 단어가 얼마나 일반적인지를 고려하여 문서의 관련성을 계산합니다. 어디에 쓰이는가? BM25 알고리즘은 주로 검색 엔진, 문서 분류, 자연어 처리 등의 분야에서 널리 사용됩니다. 이 알고리즘은 사용자가 입력한 검색어와 관련된 문서를 식별하고, 가장 관련성이 높은 문서부터 낮은 순으로 정렬하여 결과를 제공하는 데 중요한 역할을 합니다. 경쟁 알고..
-
Insertion Sort(삽입 정렬)Algorithm & Data Structure/Sort 2024. 3. 30. 00:18
Insertion sort 란? 삽입 정렬은 정렬되지 않은 리스트를 순차적으로 이미 정렬된 배열의 적절한 위치에 삽입하여 정렬을 완성하는 방식입니다. 이 알고리즘은 부분적으로 정렬된 배열을 유지하며, 각 반복에서 하나의 원소를 정렬된 배열 부분으로 이동시킵니다. Insertion sort 사이클 설명 삽입 정렬의 한 사이클은 다음과 같이 진행됩니다: 배열의 두 번째 요소를 선택합니다(첫 번째 요소는 이미 정렬된 상태로 간주). 선택된 요소를 그 이전의 요소들과 비교하여 적절한 위치를 찾습니다. 선택된 요소가 이전 요소보다 크면 그 위치에 삽입됩니다. 배열의 모든 요소가 이 과정을 거쳐 정렬될 때까지 반복합니다. 이 사이클은 배열의 각 요소가 올바른 위치에 있을 때까지 계속됩니다. Insertion sor..
-
Selection Sort(선택 정렬)Algorithm & Data Structure/Sort 2024. 3. 29. 23:59
Selection sort 란? 선택 정렬(Selection Sort)은 배열 내의 최소값(또는 최대값)을 찾아서 맨 앞(또는 맨 뒤)에 위치한 값과 교환하는 방식으로 정렬을 수행하는 알고리즘입니다. 이 과정을 배열 전체에 대해 반복함으로써 전체 배열을 오름차순 또는 내림차순으로 정렬합니다. 선택 정렬은 이해하기 쉽고 구현하기 간단한 알고리즘 중 하나로, 작은 데이터 세트에 적합합니다. Selection sort 사이클 선택 정렬의 한 사이클은 전체 배열에서 현재 선택된 위치를 기준으로 최소값을 찾는 과정을 포함합니다. 첫 번째 사이클에서는 전체 배열을 검사하여 최소값을 찾고, 이 값을 배열의 첫 번째 위치와 교환합니다. 두 번째 사이클에서는 첫 번째 원소를 제외한 나머지 배열에 대해 동일한 과정을 수행..
-
Bubble Sort(거품 정렬, 버블 소트)Algorithm & Data Structure/Sort 2024. 3. 29. 20:21
Bubble sort 란? 버블 소트(Bubble Sort)는 가장 간단하면서도 직관적인 정렬 알고리즘 중 하나입니다. 이 알고리즘은 인접한 두 원소를 비교하여 잘못된 순서(예: 오름차순 정렬에서 더 큰 수가 왼쪽에 위치하는 경우)가 발견될 때마다 이를 교환합니다. 이 과정을 모든 원소가 올바른 순서로 정렬될 때까지 반복합니다. 이 알고리즘의 이름은 더 큰 원소들이 마치 '거품'처럼 배열의 끝으로 '떠오르는' 모습에서 유래했습니다. Bubble sort 사이클 버블 소트의 한 사이클은 배열의 첫 번째 원소부터 시작해 마지막 원소까지 진행됩니다. 각 단계에서, 현재 원소와 그 다음 원소를 비교하여 현재 원소가 다음 원소보다 크면 두 원소의 위치를 바꿉니다. 이 과정은 배열의 끝에 도달할 때까지 반복되며, ..