이분 그래프 판별 알고리즘 설명
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 |
백준9465🐨스티커🚀동적프로그래밍 (0) | 2024.12.25 |
백준18005🐨Even or Odd? (0) | 2024.08.06 |