
기준 데이터를 설정하고 그 기준보다 큰 데이터와 작은 데이터의 위치를 바꾸는 방법이다. 일반적인 상황에서 가장 많이 사용되는 정렬 알고리즘 중 하나이다. 병합 정렬과 더불어 대부분의 프로그래밍 언어의 정렬 라이브러리의 근간이 되는 알고리즘입니다. 가장 기본적인 퀵 정렬

총 5명이 숙박 가능한 캡슐 호텔을 만들어보자그런데, 쿠두스가 손흥민과 케인 사이에서 자고 싶어 한다.만약, 여기서 다른 선수가 누군가의 사이에 숙박을 원한다면 어떻게 될까?6명의 인원을 받기 위해서 6명이 숙박 가능한 새로운 호텔을 지어야한다.여기서, 캡슐호텔이 바로

힙은 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리이다.힙이란 자료 구조는 "응급실"을 떠올리면 된다.응급실에 많은 환자가 존재하지만, 그 중에서 우선순위는 존재한다.이 자료구조가 바로 힙이다. 힙의 특징을 다시 생각해보자.환자들 중 에서 우선

연결되어 있는 정점과 정점 간의 관계를 표현할 수 있는 자료구조로, 노드와 간선으로 구성된다.노드(정점, Vertex): 연결 관계를 가진 각 데이터간선(Edge): 노드 간의 관계를 표시한 선인접노드(Adjacent Node): 간선으로 직접 연결된 노드선형 구조:

트리나 그래프를 탐색하는 방법 한 노드를 시작으로 인접한 다른 노드를 재귀적으로 탐색 끝까지 탐색하면 다시 위로 올라가 다음 노드를 탐색 모든 경로를 깊이 먼저 탐색하는 방식 한 노드를 시작으로 인접한 모든 정점을 우선 방문 더 이상 방문하지 않은 정점이 없을
그래프에서 사이클 발생 여부를 판별하는 알고리즘.노드들을 그룹(집합)으로 관리하면서, 두 노드를 연결할 때 사이클이 생기는지 확인할 수 있다. ✅ 활용: 최소 신장 트리(MST, Kruskal) 구현 시 필요조건: 사이클이 없는 방향 그래프(DAG)여야 함 노드와

유니온 파인드(Union-Find)는 여러 노드가 있을 때, 두 노드가 같은 집합(그래프)에 속해 있는지 판별하는 자료구조입니다. '서로소 집합(Disjoint Set)' 자료구조라고도 불리며, 이름에서 알 수 있듯이 다음과 같은 두 가지 핵심 연산으로 구성됩니다.fi

위상 정렬(Topological Sort) > 위상 정렬(Topological Sort)은 사이클이 없는 방향 그래프(DAG)에서 노드의 선후 관계를 파악하여 순서를 정하는 알고리즘입니다. 선수과목이 있는 대학 강의의 수강 순서를 정하거나, 의존성을 가지는 작업들의 실행 순서를 정하는 데 사용됩니다. 1. '위상'은 무슨 뜻일까? 💡 위상 정렬에서 ...

다익스트라(Dijkstra) 알고리즘 다익스트라 알고리즘은 하나의 정점(출발 노드)에서 다른 모든 정점까지의 최단 경로를 찾는 알고리즘입니다. 이 알고리즘이 올바르게 동작하기 위한 두 가지 전제 조건이 있습니다. 시작점이 정해져 있어야 합니다 (Single-Source). 그래프의 모든 간선(Edge)의 가중치는 양수여야 합니다 💡 핵심 원리: 더...

플로이드-워셜(Floyd-Warshall) 알고리즘은 그래프에서 모든 노드 쌍 간의 최단 경로를 찾는 알고리즘입니다. 주요 특징은 다음과 같습니다.모든 정점 → 모든 정점의 최단 거리를 구합니다.음수 가중치 간선을 포함한 그래프에서도 사용 가능합니다. (단, 음수 사이

최소신장트리
DP(Dynamic Programming)는 암기 과목이 아니라 '문제를 쪼개서 생각하는 사고법'에 가깝습니다. 특정 유형을 외우기보다, 어떤 문제든 DP로 풀 수 있게 만드는 '생각의 틀'을 잡는 것이 중요합니다.DP를 효과적으로 공부하기 위한 체계적인 접근법입니다.
레드-블랙 트리는 다음 두 가지 핵심 특징을 가진 자가 균형 이진 탐색 트리(Self-Balancing BST)입니다.이진 탐색 트리의 속성을 모두 가집니다. (왼쪽 서브트리는 부모보다 작고, 오른쪽 서브트리는 부모보다 큼)스스로 균형을 맞추어 트리의 높이를 가능한 낮