graph 3

Adjacency List (인접 리스트)

✅ 인접 리스트 (Adjacency List) 1️⃣ 인접 리스트의 특징그래프를 표현하는 또 다른 방법으로, 연결된 노드만 저장하는 방식입니다.메모리 효율적: 필요한 간선만 저장하므로 **공간 복잡도가 O(N + E)**로 줄어듭니다.연결 여부 확인 속도가 느림: 특정 두 노드가 연결되었는지 확인하려면 리스트를 탐색해야 하므로 O(N)의 시간이 걸립니다.✅ 장점:메모리를 절약할 수 있음 (O(N + E)) → 불필요한 공간 낭비 없이 저장 가능노드가 많고 간선이 적은 경우(희소 그래프)에 유리❌ 단점:특정 노드 간 연결 여부 확인 속도가 느림 (O(N))구현이 다소 복잡할 수 있음  2️⃣ 인접 리스트 예제 (양방향 그래프)다음과 같은 그래프를 인접 리스트로 표현해보겠습니다.예제 그래프 (0) --..

Adjeacency Matrix (인접 행렬)

✅ 인접 행렬 (Adjacency Matrix)인접 행렬의 특징그래프를 표현하는 방법 중 하나로, 2차원 리스트(배열)을 사용하여 노드 간의 연결 정보를 저장하는 방식입니다.노드 개수가 N개라면, N x N 크기의 행렬을 사용합니다.graph[i][j] = 1이면 i번 노드에서 j번 노드로 갈 수 있음을 의미합니다.무방향 그래프의 경우 graph[i][j] == graph[j][i]가 항상 성립합니다.✅ 장점:연결 여부를 빠르게 확인 가능 (O(1)) → 특정 노드 간의 연결을 빠르게 조회할 수 있습니다.구현이 직관적 → 2차원 배열을 사용하기 때문에 접근이 쉬움❌ 단점:메모리를 많이 사용 (O(N^2)) → 노드 수가 많아지면 메모리 낭비가 심함간선 개수가 적은 경우 비효율적 → 사용하지 않는 공간이 ..

Graph ( 그래프 )

✅Graph(그래프)그래프(Graph)는 노드(Node, 정점)와 간선(Edge, 연결선)으로 이루어진 자료구조입니다. 이는 현실 세계의 관계를 모델링하는 데 많이 사용됩니다. 예를 들어,SNS 친구 관계 → 사람(노드)들이 친구(간선)로 연결지하철 노선도 → 역(노드)들이 선(간선)으로 연결지도 네비게이션 → 도시(노드)들이 도로(간선)로 연결그래프는 탐색 알고리즘을 사용해 특정 노드를 찾거나, 최단 경로를 구할 수 있습니다. 대표적인 탐색 방법으로 DFS(깊이 우선 탐색)과 BFS(너비 우선 탐색)이 있습니다.1️⃣ 그래프의 기본 요소그래프는 두 가지 주요 요소로 구성됩니다.노드(Node, 정점): 데이터를 저장하는 기본 단위입니다.간선(Edge): 노드 간의 관계를 나타내는 연결선입니다.🔹 노드(..