이분 그래프 판별 알고리즘 설명
1. 이분 그래프란?
이분 그래프(Bipartite Graph)는 그래프의 정점들을 두 그룹으로 나눌 수 있어서, 각 그룹 내의 정점들 사이에는 간선이 없는 그래프를 말합니다.

2. 알고리즘 흐름도

3. BFS를 이용한 색칠 과정
이분 그래프와 관련 알고리즘
이분 그래프는 노드를 두 그룹으로 나눌 수 있으며, 같은 그룹 내의 노드끼리는 간선이 연결되지 않는 그래프다. 이분 그래프와 알고리즘이분 그래프는 정점 집합을 두 개의 그룹(U, V
redcubes.tistory.com
4. 코드 구현 설명
주요 구현 단계:
- 그래프 생성
graph = [[] for _ in range(v + 1)] for u, w in edges: graph[u].append(w) graph[w].append(u) - 색상 배열 초기화
colors = [0] * (v + 1) # 0: 미방문, 1: 그룹1, -1: 그룹2 - BFS 탐색
from collections import deque def bfs(start): queue = deque([start]) colors[start] = 1 while queue: node = queue.popleft() for neighbor in graph[node]: if colors[neighbor] == 0: colors[neighbor] = -colors[node] queue.append(neighbor) elif colors[neighbor] == colors[node]: return False return True
5. 시간 복잡도
전체 알고리즘의 시간 복잡도는 O(V + E)입니다.
- V: 정점의 개수
- E: 간선의 개수
- 각 정점과 간선을 한 번씩만 방문

'Tech > Coding' 카테고리의 다른 글
| 1836🐨트리의 가짓수 세기 .py (0) | 2025.02.23 |
|---|---|
| 14939🐨불 끄기-파이썬 (0) | 2025.02.21 |
| 해결한 문제 간단 리뷰(2.8~2.13) (0) | 2025.02.13 |
| 후위표기식 (0) | 2025.01.30 |
| 14930🐨구슬 (BEAD)-파이 (0) | 2025.01.27 |