본문 바로가기

이론19

[알고리즘 이론] 이진 탐색(Binary Search) 이진 탐색(Binary Search) 완벽 정리 🔍안녕하세요! 오늘은 프로그래밍에서 가장 기본적이면서도 중요한 알고리즘 중 하나인 **이진 탐색(Binary Search)**에 대해 알아보겠습니다. 이진 탐색은 "이분 탐색"이라고도 불리며, 코딩 테스트에서도 자주 출제되는 핵심 알고리즘입니다.🤔 이진 탐색이 뭔가요?이진 탐색은 정렬된 배열에서 특정 값을 빠르게 찾는 방법입니다.예를 들어 사전에서 단어를 찾을 때를 생각해보세요. 'S'로 시작하는 단어를 찾는다면, 처음부터 한 페이지씩 넘기지 않고 대략 중간쯤을 펼쳐서 확인한 다음, 그보다 앞쪽인지 뒤쪽인지 판단해서 범위를 좁혀나가죠? 바로 그 원리입니다!⚡ 왜 이진 탐색을 써야 할까요?속도 비교일반적인 순차 탐색 vs 이진 탐색을 비교해보겠습니다:📊.. 2025. 6. 13.
Redis 기본 개념 Redis 기본 개념: 빠르고 효율적인 인메모리 데이터 저장소Redis란 무엇인가?Redis(Remote Dictionary Server)는 오픈 소스 기반의 인메모리 데이터 구조 저장소입니다. 메모리에 데이터를 저장하여 매우 빠른 읽기/쓰기 성능을 제공하며, 다양한 데이터 구조를 지원하는 NoSQL 데이터베이스입니다.🚀 Redis의 주요 특징1. 인메모리 저장모든 데이터를 RAM에 저장하여 디스크 I/O 없이 빠른 접근 가능밀리초 단위의 응답 시간 제공2. 다양한 데이터 구조 지원String: 가장 기본적인 키-값 저장Hash: 필드-값 쌍의 컬렉션List: 순서가 있는 문자열 리스트Set: 중복되지 않는 문자열 집합Sorted Set: 점수로 정렬된 집합Bitmap, HyperLogLog 등 고급 .. 2025. 5. 22.
[알고리즘 이론] 분할 정복(Divide and Conquer) 분할 정복(Divide and Conquer) 알고리즘 완벽 가이드1. 분할 정복이란?분할 정복(Divide and Conquer)은 복잡한 문제를 더 작고 관리하기 쉬운 하위 문제들로 나누어 해결하는 알고리즘 패러다임입니다. 이 방법론은 컴퓨터 과학의 여러 분야에서 광범위하게 사용되며, 많은 효율적인 알고리즘의 기초가 됩니다.분할 정복은 다음 세 가지 주요 단계로 구성됩니다:분할(Divide): 원래 문제를 여러 개의 작은 하위 문제로 나눕니다.정복(Conquer): 하위 문제들을 재귀적으로 해결합니다. 하위 문제가 충분히 작으면 직접 해결합니다.결합(Combine): 하위 문제들의 해결책을 결합하여 원래 문제의 해결책을 만듭니다.2. 분할 정복의 장점분할 정복 접근법은 다음과 같은 여러 가지 장점을 .. 2025. 5. 14.
[알고리즘 이론] 계수 정렬(Counting Sort) 1. 계수 정렬이란?계수 정렬(Counting Sort)은 비교 기반이 아닌 정렬 알고리즘으로, 정수나 정수로 표현할 수 있는 데이터를 정렬할 때 사용됩니다. 이 알고리즘은 각 항목이 몇 번 등장하는지 세어서 정렬하는 방식으로 작동합니다. 특히 정수의 범위가 작을 때 매우 효율적인 알고리즘입니다.2. 계수 정렬의 기본 원리계수 정렬의 기본 아이디어는 다음과 같습니다:입력 배열의 최댓값과 최솟값을 찾아 범위를 결정합니다.해당 범위만큼의 크기를 가진 카운트 배열을 생성합니다.입력 배열을 순회하며 각 요소의 출현 횟수를 카운트 배열에 기록합니다.카운트 배열을 누적합으로 변환합니다(선택 사항).누적합을 이용하여 각 요소의 정확한 위치를 계산하고 결과 배열에 배치합니다.3. 계수 정렬 알고리즘 단계별 설명계수 정.. 2025. 4. 23.
[알고리즘 이론] 투 포인터(Two Pointers) 설명은 나중에 올리겠다. 2024. 10. 2.
[알고리즘 이론] 벨만-포드 알고리즘(Bellman-Ford) 이론 이번에 볼 알고리즘은 벨만-포드 알고리즘이다. 최단 거리를 알고리즘 구하는 알고리즘 중 하나이다. 일반적인 다익스트라 알고리즘이나 플루이드-워셜 알고리즘이랑 다른점은 가중치가 음수인 점이다. 가중치가 음수라는 점에서 다익스트라 처럼 몇개의 간선만 선택 할 수 있는 점과 다르게 벨만-포드는 모든 간선을 봐야 된다는 점이다. 일단 벨만-포드 알고리즘을 알기위해서는 그래프에 대한 개념이 있어야 되기 때문에 그래프를 먼저 보고 공부하는 것을 추천한다. 그래프: https://jih3508.tistory.com/100 [알고리즘 이론] 그래프(Grape) 이론 이번에 볼 자료구조는 그래프이다. 트리는 노드간에 부모-자식, 형제 이런 개념이 있지만 그래프는 노드하나 이상이 사이클을 가진 개념이다. 사이클이란 .. 2023. 1. 3.