티스토리 뷰
문제
접근
import sys
sys.stdin = open('input.txt')
from collections import deque
V, E = map(int, input().split()) # 7, 8
edge = list(map(int, input().split())) # [1, 2, 1, 3, 2, 4, 2, 5, 4, 6, 5, 6, 6, 7, 3, 7]
# 인접 행렬을 만든다.
graph = [[0]*(V+1) for _ in range(V+1)] # (V+1 * V+1) 행렬
for i in range(E):
ni, nj = edge[2*i], edge[2*i+1]
graph[ni][nj] = 1
graph[nj][ni] = 1 # 무방향 그래프
# 큐와 visited 설정한다.
deque_que = deque()
visited = [False] * (V+1)
def BFS(graph, start_node):
# 시작 노드를 큐에 넣고 방문처리한다.
deque_que.append(start_node)
visited[start_node] = True
# 큐가 빌 때까지
while deque_que:
# 1. 큐의 첫번째 원소를 반환한다.
node = deque_que.popleft()
# 출력
print(node)
# 2. node와 연결된 모든 선을 돌면서
for w in range(1, V+1):
# 아직 방문하지 않은 곳이면
if graph[node][w] == 1 and not visited[w]:
# 방문표시하고 큐에 넣는다.
visited[w] = True
deque_que.append(w)
BFS(graph, 1)
'Algorithm' 카테고리의 다른 글
서로소 집합과 MST 최소신장트리 / 프림 & 크루스칼 알고리즘 (0) | 2021.10.15 |
---|---|
[SWEA] 2814. 최장 경로 D3 (0) | 2021.10.14 |
[graph] DFS 기본 구현 (0) | 2021.10.13 |
[graph] 문제유형 3가지 : 완전탐색/MST/다익스트라 (0) | 2021.10.13 |
[graph] 그래프를 인접행렬 또는 인접리스트로 받아오기 (0) | 2021.10.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 디즈니얼굴
- 개발자도서추천
- 개발자책추천
- 무료폰트추천
- 개발자로드맵
- ssafy후기
- 개발자커리
- 개발언어순위
- ssafy6기
- 개발도서추천
- 클린코더
- 개발언어추천
- 코딩도서
- 폰트
- 임대차3법
- 한글무료폰트추천
- intj여자
- ssafy결과
- 싸피
- SSAFY
- ssafy합격후기
- 깃허브계정2개
- 브왈라
- 깃허브계정
- 개발자
- 클린코드
- 싸피6기
- 맥과윈도우로깃허브
- 상업용무료폰트
- 폰트추천
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함