728x90
반응형
1260. DFS와 BFS
- DFS(Depth First Search, 깊이 우선 탐색), BFS(Breadth First Search, 너비 우선 탐색)으로 구현
- Stack과 Queue를 사용하고 방문처리를 통해 탐색
import sys
from collections import deque
input = sys.stdin.readline
n, m, v = map(int, input().split())
arr = [[] for i in range(n + 1)]
visited = [False for _ in range(n + 1)]
deq = deque()
for i in range(m):
a, b = map(int, input().split())
arr[a].append(b)
arr[b].append(a)
def dfs(start, visited):
visited[start] = True
print(start, end=' ')
for i in sorted(arr[start]):
if not visited[i]:
visited[i] = True
dfs(i, visited)
def bfs(start, visited):
visited[start] = True
print(start, end=' ')
deq.append(start)
while deq:
x = deq.popleft()
for i in sorted(arr[x]):
if not visited[i]:
print(i, end=' ')
visited[i] = True
deq.append(i)
dfs(v, visited)
visited = [False for _ in range(n + 1)]
print()
bfs(v, visited)
728x90
반응형
'크래프톤 정글 - TIL' 카테고리의 다른 글
크래프톤 정글 5기 TIL - Day 15(알고리즘) (1) | 2024.04.03 |
---|---|
크래프톤 정글 5기 TIL - DAY 14(트라이, 플로이드 와샬, 다익스트라) (0) | 2024.04.01 |
크래프톤 정글 5기 TIL - Day 12(2)(프로세스) (0) | 2024.03.29 |
크래프톤 정글 5기 TIL - Day 12(CS:APP (1)) (0) | 2024.03.29 |
크래프톤 정글 5기 TIL - Day 11 (0) | 2024.03.28 |