[알고리즘] 이진 탐색(Binary Search)
·
CS/알고리즘
📌  이진 탐색이란?이진 탐색(Binary Search)은 정렬된 데이터에서 원하는 값을 효율적으로 탐색하는 알고리즘! 🎯기능특징시간 복잡도타깃 데이터 탐색중앙값 비교를 통한 대상 축소 방식O(logN)  🔍 이진 탐색의 주요 특징빠른 탐색이진 탐색은 정렬된 데이터에서 탐색을 수행하므로 **O(log N)**의 시간 복잡도를 가진다.데이터 크기가 커질수록 선형 탐색보다 훨씬 효율적이다.정렬 필수이진 탐색을 사용하기 위해선 데이터가 반드시 정렬되어 있어야 한다.정렬이 되어 있지 않다면, 먼저 정렬한 후 탐색해야 한다.  🔧 이진 탐색의 활용과 문제 유형활용 사례🔢 숫자 데이터 탐색📚 사전처럼 정렬된 텍스트 탐색🛒 가격 또는 범위를 기준으로 정렬된 상품 탐색문제 유형✅ 특정 값의 존재 여부 확인..
[알고리즘] 너비 우선 탐색 : BFS(Breadth-First-Search)
·
CS/알고리즘
📌  너비 우선 탐색이란?그래프 탐색 기법그래프 완전 탐색 기법 중 하나그래프의 시작 노드에서 출발하여 시작 노드를 기준으로 가까운 노드를 먼저 방문하면서 탐색하는 알고리즘Queue(큐) 자료구조를 사용해 탐색하며, 탐색 순서는 선입선출(FIFO) 방식을 따른다.BFS는 최단 경로를 보장하기 때문에, 최단 거리 계산이 필요한 문제에서 매우 유용하다.구현 방식큐(Queue)를 이용한 구현시작 노드를 큐에 넣고 방문 표시큐에서 노드를 꺼낸 뒤, 해당 노드에 연결된 인접 노드들을 큐에 추가하고 방문 여부를 기록큐가 빌 때까지 이 과정을 반복방문 여부 확인방문한 노드를 다시 탐색하지 않도록 방문 여부를 기록하는 것이 중요이를 통해 중복 탐색을 방지하고, 무한 루프를 방지할 수 있음탐색 순서BFS는 가까운 노드..
[알고리즘] 깊이 우선 탐색 : DFS(Depth-First-Search)
·
CS/알고리즘
📌  깊이 우선 탐색이란?그래프 탐색 기법그래프 완전 탐색 기법 중 하나그래프의 시작 노드에서 출발하여 하나의 분기를 정해 최대 깊이까지 탐색이후, 탐색하지 않은 다른 분기로 이동해 탐색을 수행구현 방식재귀 함수나 스택을 사용해서 구현각 노드의 방문 여부를 기록하여 중복 탐색을 방지탐색 순서 깊이를 우선으로 탐색하기 때문에 한 방향으로 끝까지 탐색한 뒤 다시 되돌온다.미로 탐색 시, 한 방향으로 갈 수 있을 때까지 이동하다 막다른 길에 도달하면 이전 갈림길로 돌아가 다른 방향으로 탐색하는 과정과 유사하다.단순하지만 강력한 알고리즘DFS는 너비 우선 탐색(BFS)에 비해 상대적으로 구현이 간단함단순 검색 속도는 BFS보다 느릴 수 있으며, 경우에 따라 무한루프에 빠질 가능성도 있으므로 방문 기록이 중요함..
[알고리즘] 기수 정렬(Radix Sort)이란?
·
CS/알고리즘
정렬 알고리즘정의버블 (bubble)데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식 선택 (selection)대상에서 가장 크거나 작은 데이터를 찾아가 선택을 반복하면서 정렬하는 방식삽입 (insertion)대상을 선택해 정렬된 영역에서 선택 데이터의 적절한 위치를 찾아 삽입하면서 정렬하는 방식퀵 (quick)pivot 값을 선정해 해당 값을 기준으로 정렬하는 방식병합 (merge)이미 정렬된 부분 집합들을 효율적으로 병합해 전체를 정렬하는 방식기수 (radix)데이터의 자릿수를 바탕으로 비교해 데이터를 정렬하는 방식  📌 기수 정렬이란?값을 비교하지 않고 데이터의 자릿수를 바탕으로 비교해 데이터를 정렬하는 방식시간 복잡도 : O(kn) ➡️ k는 데이터의 자릿수ex) 234,..