Arian Soleimanzadeh
  • 홈
  • 블로그
  • 팟캐스트
  • 비디오
  • 라이브러리
  • 문의
العربيةArabic
DeutschGerman
EnglishEnglish
فارسیPersian
한국어Korean
中文Chinese
패널•빠른 문의

Languages

Choose your interface locale

ar

العربية

Arabic

de

Deutsch

German

en

English

English

fa

فارسی

Persian

ko

한국어

Korean

zh

中文

Chinese

상담 예약

짧은 메시지를 남겨주세요 — 가능한 한 빠르게 답변드리겠습니다.

LinkedIn빠른 응답
홈/아티클/그래프 Connected Components: DFS, BFS와 Union-Find
AlgorithmsGraph Algorithms아티클

그래프 Connected Components: DFS, BFS와 Union-Find

Connected Components를 DFS, BFS, Union-Find, Number of Islands, Network Partition과 함께 설명합니다.

2026년 8월 21일9 분 읽기27 조회수
#Graph#Algorithms#Connected Components#DFS#BFS#Union-Find#JavaScript#TypeScript

Arian Soleimanzadeh

Software Engineer & Researcher

Connected Components 시각 가이드

Arian Soleimanzadeh

AI · 코드 · 제품

연구 + 엔지니어링
이 페이지에서
핵심 아이디어JavaScriptSCC와의 차이Union-Find활용복잡도정리

Connected Component는 무방향 그래프에서 서로 경로로 연결된 정점들의 최대 집합입니다.

전체 그래프가 하나의 Component라면 Connected Graph이고, 여러 개라면 Disconnected Graph입니다.

핵심 아이디어

방문하지 않은 정점마다:

  1. DFS 또는 BFS를 시작합니다.
  2. 해당 탐색에서 도달한 모든 정점은 하나의 Component입니다.
  3. 다음 미방문 정점에서 반복합니다.

JavaScript

JavaScript
1234567891011121314151617181920212223242526272829
function components(graph) {
  const visited = new Set();
  const result = [];

  for (const start of Object.keys(graph)) {
    if (visited.has(start)) continue;

    const stack = [start];
    const component = [];

    visited.add(start);

    while (stack.length) {
      const node = stack.pop();
      component.push(node);

      for (const next of graph[node] ?? []) {
        if (!visited.has(next)) {
          visited.add(next);
          stack.push(next);
        }
      }
    }

    result.push(component);
  }

  return result;
}

SCC와의 차이

Connected Components는 주로 Undirected Graph에 사용됩니다.

Directed Graph에서는 Weakly Connected Components와 Strongly Connected Components를 구분합니다.

Union-Find

Edge가 동적으로 추가되는 경우 DSU를 사용하면 Component 병합과 Connectivity Query를 매우 효율적으로 처리할 수 있습니다.

활용

  • 소셜 네트워크의 독립 그룹
  • Number of Islands
  • Network Partition
  • 이미지 Connected Regions
  • 장치 그룹 분석

복잡도

Adjacency List 기준:

Code
1
O(V + E)

정리

방문하지 않은 정점에서 시작하는 각 DFS/BFS는 하나의 Connected Component를 찾습니다.

이 페이지에서
핵심 아이디어JavaScriptSCC와의 차이Union-Find활용복잡도정리

아티클 정보

게시 정보, 읽기 시간 및 조회 데이터입니다.

게시일

2026년 8월 21일

업데이트

2026년 11월 3일

읽기 시간

9 분 읽기

조회수

27

작성자

Arian Soleimanzadeh

이전 아티클

그래프 Cycle Detection: DFS, Union-Find와 Kahn

다음 아티클

Topological Sorting: Kahn, DFS와 DAG 의존성 정렬

Arian Soleimanzadeh

현대적인 웹 엔지니어링, UI 시스템, 실용적인 AI 제품에 집중한 개인 포트폴리오 — 깨끗한 코드, 명확한 디자인.

빠른 링크

  • 소개
  • 블로그
  • 라이브러리
  • 문의

문의

  • soleimanzadeh.a.work@gmail.com
  • soleimanzadeh.uni@gmail.com

가능 시간: 평일

보통 다음 시간 내에 답변합니다 24시간.

뉴스레터

글, 프로젝트, 새 릴리스에 대한 업데이트를 받아보세요.

© 2026 ariansoleimanzadeh.dev — 모든 권리 보유.

LinkedIn