728x90
반응형

BFS 9

그래프(Graph)

개요그래프(Graph)는 객체(정점, Vertex)와 이들 사이의 연결 관계(간선, Edge)를 표현하는 비선형 자료구조로, 소셜 네트워크, 지도, 통신망, 관계형 데이터 등 현실 세계의 다양한 구조를 표현하는 데 사용된다. 방향성, 가중치, 순환 여부에 따라 다양한 그래프가 존재하며, 탐색, 최단 경로, 최소 신장 트리, 위상 정렬 등의 알고리즘이 활용된다.1. 그래프의 구성 요소 구성 요소 설명 정점(Vertex)데이터를 저장하는 노드 (점)간선(Edge)정점 간의 연결 관계 (선)인접 정점특정 정점과 직접 연결된 정점차수(Degree)정점과 연결된 간선의 수2. 그래프의 분류분류 기준유형설명방향성방향 그래프간선에 방향이 있음 (A → B) 무방향 그래프간선에 방향이 없음 (A — B)가중치가중치 ..

Topic 2025.03.30

큐(Queue)

개요큐(Queue)는 먼저 들어간 데이터가 먼저 나오는 선입선출(First-In, First-Out, FIFO) 구조를 가지는 선형 자료구조이다. 데이터는 **뒤(Rear)**에서 삽입되고, **앞(Front)**에서 삭제되며, 일상적인 줄서기, 프로세스 스케줄링, 버퍼 처리 등에 널리 사용된다. 파이썬에서는 collections.deque, 리스트, 큐 모듈 등을 통해 구현할 수 있다.1. 개념 및 정의 항목 설명 구조선형적, 한쪽에서는 삽입, 반대쪽에서는 삭제 수행주요 연산enqueue(삽입), dequeue(삭제), peek(앞 요소 확인), isEmpty원리FIFO (First-In, First-Out)2. 큐 연산 동작 예시초기: []enqueue(10) → [10]enqueue(20) → [..

Topic 2025.03.29

트리 탐색(Tree Traversal) 알고리즘

개요트리 탐색(Tree Traversal)은 트리 구조를 가진 자료구조의 노드를 특정 순서에 따라 방문하는 알고리즘이다. 이진 트리(Binary Tree), 이진 탐색 트리(BST), 힙(Heap) 등 다양한 트리 구조에서 데이터를 순차적으로 접근하거나 연산을 수행할 때 사용된다. DFS 기반의 전위/중위/후위 순회와 BFS 기반의 레벨 순회로 나뉘며, 문제에 따라 적절한 탐색 방법을 선택해야 한다.1. 개념 및 정의트리 탐색은 다음과 같은 두 가지 유형으로 나뉜다:DFS(Depth-First Search): 깊이 우선 순회 (전위, 중위, 후위 순회)BFS(Breadth-First Search): 너비 우선 순회 (레벨 순회)2. DFS 기반 트리 순회 순회 방식 방문 순서 주요 특징 전위 순회 (..

Topic 2025.03.29

BFS 알고리즘(Breadth-First Search)

개요BFS(Breadth-First Search)는 그래프나 트리의 탐색 알고리즘 중 하나로, 시작 노드에서 가까운 노드부터 차례대로 탐색해 나가는 너비 우선 방식이다. 큐(Queue)를 기반으로 하며, 최단 거리 탐색과 레벨 기반 처리가 가능해 다양한 문제 해결에 널리 사용된다. 본 글에서는 BFS의 개념, 동작 원리, 시간 복잡도, 구현 방법, 활용 사례 등을 체계적으로 정리한다.1. 개념 및 정의BFS는 탐색 시작 노드에서 인접한 노드들을 먼저 방문한 뒤, 그다음 레벨의 노드들을 방문하는 방식으로 그래프를 탐색하는 알고리즘이다. FIFO 구조의 큐를 사용하며, 방문 순서가 레벨 순으로 진행된다. 무가중치 그래프에서 최단 경로를 찾는 데 가장 적합한 알고리즘이다.2. BFS 알고리즘 동작 방식 단계 ..

Topic 2025.03.28

경로 탐색 알고리즘(Pathfinding Algorithms)

개요경로 탐색 알고리즘(Pathfinding Algorithm)은 시작 지점에서 목표 지점까지 도달하는 최적의 경로를 찾는 알고리즘이다. 이는 그래프 이론을 기반으로 하며, 다양한 조건(최단 거리, 최소 비용, 장애물 회피 등)에 따라 여러 알고리즘이 활용된다. 게임 개발, 내비게이션, 네트워크 라우팅, 인공지능 등 다양한 분야에서 필수적인 요소이며, 최적화된 탐색을 통해 성능과 정확도를 향상시킬 수 있다. 본 글에서는 주요 경로 탐색 알고리즘의 개념, 특징, 시간 복잡도 및 활용 사례를 중심으로 설명한다.1. 개념 및 정의경로 탐색은 그래프의 정점(Vertex)과 간선(Edge) 구조를 바탕으로 출발 노드에서 도착 노드까지 이동 가능한 경로를 찾는 연산이다. 경로의 최단 거리, 최소 비용, 경유지 조건..

Topic 2025.03.28

순회 알고리즘(Traversal Algorithms)

개요순회 알고리즘(Traversal Algorithms)은 트리(Tree), 그래프(Graph)와 같은 비선형 자료구조 내의 모든 노드(또는 정점)를 체계적으로 방문하는 방법이다. 순회는 구조의 전체 상태를 파악하거나 특정 노드 검색, 경로 탐색, 연산 수행에 필수적이다. 이 글에서는 트리 순회와 그래프 순회를 중심으로 다양한 순회 알고리즘의 개념, 구현 방식, 시간 복잡도 및 활용 사례를 정리한다.1. 개념 및 정의순회(Traversal)는 자료구조에 저장된 데이터를 하나씩 방문하며 특정 작업(출력, 계산 등)을 수행하는 과정이다. 선형 구조는 단순 순차 탐색으로 충분하지만, 트리나 그래프는 분기 구조를 갖기 때문에 다양한 방식의 순회가 존재한다.2. 트리 순회(Tree Traversal) 순회 방식 ..

Topic 2025.03.28

탐색 알고리즘(Search Algorithms)

개요탐색 알고리즘은 데이터 집합 내에서 특정 값을 찾기 위해 사용되는 알고리즘이다. 효율적인 탐색은 데이터 처리 성능에 직결되며, 자료구조와 문제 특성에 따라 다양한 탐색 방식이 활용된다. 선형 탐색처럼 단순한 방식부터 이진 탐색, 해시 탐색, 그래프 기반 탐색(DFS, BFS), 트리 탐색까지 광범위하게 존재한다. 본 글에서는 탐색 알고리즘의 개념, 종류, 시간 복잡도, 활용 사례를 중심으로 체계적으로 설명한다.1. 개념 및 정의탐색 알고리즘은 주어진 데이터 구조에서 특정 키나 값을 찾는 절차이다. 자료의 정렬 여부, 크기, 구조에 따라 탐색 방식의 효율이 달라지며, 경우에 따라 최적화된 알고리즘 선택이 중요하다.2. 탐색 알고리즘의 분류 분류 설명 적용 자료구조 선형 탐색데이터를 처음부터 끝까지 ..

Topic 2025.03.28

비선형 자료구조(Non-Linear Data Structures)

개요비선형 자료구조는 데이터 간 관계가 일대일(one-to-one)이 아닌 계층적 또는 망형 구조로 표현되는 구조를 말한다. 대표적으로 트리(Tree)와 그래프(Graph)가 있으며, 복잡한 관계성, 네트워크 구조, 계층적 데이터 표현에 효과적이다. 선형 구조보다 연산이 복잡하지만, 현실 세계의 다양한 문제 해결에 핵심적인 역할을 한다. 본 글에서는 트리와 그래프의 개념, 유형, 주요 연산, 활용 사례를 체계적으로 설명한다.1. 개념 및 정의 자료구조 정의 특징 트리(Tree)계층적 구조로 부모-자식 관계를 갖는 노드 집합비순환, 루트에서 시작, 서브트리 구성 가능그래프(Graph)정점(Vertex)과 간선(Edge)으로 구성된 네트워크 형태순환 허용, 방향성/가중치 여부에 따라 다양화비선형 구조는 ..

Topic 2025.03.28

자료구조 알고리즘(Data Structure Algorithms)

개요자료구조 알고리즘은 다양한 형태의 데이터를 저장하고 조작하기 위해 설계된 알고리즘으로, 효율적인 연산과 최적화된 문제 해결을 가능하게 한다. 이 알고리즘들은 배열, 스택, 큐, 트리, 그래프 등 특정 자료구조의 특성을 활용하여 구현되며, 소프트웨어 성능 향상에 직접적인 영향을 미친다. 본 글에서는 자료구조 알고리즘의 개념, 분류, 주요 알고리즘, 시간 복잡도 분석, 활용 사례를 중심으로 체계적으로 소개한다.1. 개념 및 정의자료구조 알고리즘은 특정 자료구조의 구조적 특성을 활용하여 데이터를 탐색, 삽입, 삭제, 정렬, 탐색 등의 연산을 수행하는 알고리즘이다. 문제 해결의 핵심 로직으로, 프로그래밍 전반에 걸쳐 필수적인 역할을 한다.2. 알고리즘 분류 분류 설명 주요 자료구조 탐색 알고리즘원하는 데..

Topic 2025.03.28
728x90
반응형