Post
DFS์™€ BFS | Gihun Son

DFS์™€ BFS

๐Ÿ’ก **Check Point !

(ย ํ•ด๋‹น์‚ฌํ•ญย โœ“์ฒดํฌย )

  1. ๋ง‰ํž˜ ์—†์ด ์ˆ˜์›”ํ•˜๊ฒŒ ํ’€๋ฆฐ ๋ฌธ์ œ์ธ๊ฐ€? โœ“

  2. 1์‹œ๊ฐ„์ด๋‚ด๋กœ ํ’€๋ ธ๋˜ ๋ฌธ์ œ์ธ๊ฐ€?

  3. 1์‹œ๊ฐ„ ์ด์ƒ or ๋ฉฐ์น ์„ ๋‘๊ณ  ํ’€์–ด๋ดค๋”๋‹ˆ ํ’€๋ฆฐ ๋ฌธ์ œ์ธ๊ฐ€?

  4. ์‹œ๊ฐ„์„ ์จ๋„ ๋„๋ฌด์ง€ ํ’€ ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ์ธ๊ฐ€?

  5. ์†”๋ฃจ์…˜์„ ์ฐพ์•„๋ดค๋Š”๊ฐ€?


๋‚œ์ด๋„ ์ฒด๊ฐ

  1. ์ตœ์ƒ

  2. ์ƒโœ“

  3. ์ค‘โœ“

  4. ํ•˜


์ดํ•ด๋„

  1. ์™„๋ฒฝํžˆ ์ดํ•ดโœ“

  2. ๋‹ค์†Œ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ถ€๋ถ„๋“ค์ด ์žˆ์Œ

  3. ์ดํ•ด ๋ชปํ•จ

๋ฌธ์ œ

๊ทธ๋ž˜ํ”„๋ฅผ DFS๋กœ ํƒ์ƒ‰ํ•œ ๊ฒฐ๊ณผ์™€ BFS๋กœ ํƒ์ƒ‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹จ, ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” ์ •์ ์ด ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ์—๋Š” ์ •์  ๋ฒˆํ˜ธ๊ฐ€ ์ž‘์€ ๊ฒƒ์„ ๋จผ์ € ๋ฐฉ๋ฌธํ•˜๊ณ , ๋” ์ด์ƒ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” ์ ์ด ์—†๋Š” ๊ฒฝ์šฐ ์ข…๋ฃŒํ•œ๋‹ค. ์ •์  ๋ฒˆํ˜ธ๋Š” 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ๊นŒ์ง€์ด๋‹ค.

Untitled

๋‚˜์˜ ํ’€์ด

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
32
33
34
35
36
37
38
import sys
from collections import defaultdict, deque

def DFS(graph,i,visited):
    visited[i]=True
    print(i,end=' ')
    for g in graph[i]:
        if not visited[g]:
            DFS(graph,g,visited)
        
def BFS(graph,i,visited):
    queue=deque()
    queue.append(i)
    visited[i]=True
    while queue:
        v=queue.popleft()
        print(v,end=' ')
        for g in graph[v]:
            if not visited[g]:
                queue.append(g)
                visited[g]=True

N,M,V=map(int,input().split())
graph=defaultdict(list)

for _ in range(M):
    n1,n2=map(int,sys.stdin.readline().strip().split())
    graph[n1].append(n2)
    graph[n2].append(n1)
for key in graph:
    graph[key].sort()
    
visited=[False]*(N+1)
DFS(graph,V,visited)
print('')
visited=[False]*(N+1)
BFS(graph,V,visited)
print('')
  • ์œ„ ๋ฌธ์ œ๋Š” ๋‹จ์ˆœํžˆ BFS, DFS์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค. ์ด์ œ BFS, DFS ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์กฐ๊ธˆ์”ฉ ์ต์ˆ™ํ•ด์ ธ ๊ฐ€๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๋” ์—ฐ์Šตํ•˜๋ฉด์„œ ์™„์ „ํžˆ ์ต์ˆ™ํ•ด์งˆ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.
  • ํŠนํžˆ BFS์˜ deque()๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐฉ์‹์„ ์ž˜ ๊ธฐ์–ตํ•˜์ž.
This post is licensed under CC BY 4.0 by the author.