[백준/BOJ] 1260번 DFS와 BFS
1260번: DFS와 BFS
첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사
www.acmicpc.net
이 문제는 dfs와 bfs문제의 가장 기본문제 같다.
Python code
더보기
def dfs(v, n, matrix, check):
check[v]=True
print(v, end=' ')
for i in range(1,n+1):
if not check[i] and matrix[v][i]==1:
dfs(i, n, matrix, check)
def bfs(v, n, matrix, check):
queue=[v]
check[v]=True
while queue:
v=queue.pop(0)
print(v, end=' ')
for i in range(1, n+1):
if not check[i] and matrix[v][i]==1:
queue.append(i)
check[i]=True
n, m, v=map(int, input().split())
matrix=[[0] * (n + 1) for _ in range(n + 1)]
for _ in range(m):
a,b=map(int, input().split())
matrix[a][b] = 1
matrix[b][a] = 1
dfs(v, n, matrix, [False]*(n+1))
print()
bfs(v, n, matrix, [False]*(n+1))
'baekjoon' 카테고리의 다른 글
[백준/BOJ] 1697번 숨바꼭질 (Python) (0) | 2021.01.30 |
---|---|
[백준/BOJ] 2667번 단지번호 붙이기 (Python) (0) | 2021.01.30 |
[백준/BOJ] 15711번 환상의 짝꿍 (Python) (0) | 2021.01.30 |
[백준/BOJ] 6588번 골드바흐의 추측 (Python) (0) | 2021.01.30 |
[백준/BOJ] 1644번 소수의 연속합 (Python) (0) | 2021.01.29 |