ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ง๐ป๐ป ์๊ณ ๋ฆฌ์ฆ/๊ทธ๋ํ
[๊ทธ๋ํ]DFS ๊ตฌํ ๋ฐฉ๋ฒ์ ์์๋ณด์
10000COW 2022. 10. 23. 17:45728x90
1) ์ฌ๊ท๋ฅผ ์ด์ฉํ DFS ๊ตฌํ Pseudo code
G๋ ๊ทธ๋ํ, v๋ ์ ์ (vertex)์ผ ๋,
DFS(G,v)
lable v as discovered
for all directed edges from v to w that are in G.adjacentEdges(v) do
if vertex w is not labeled as discovered then
recursively call DFS(G,w)
์ฌ๊ท๋ฅผ ์ด์ฉํ DFS ๊ตฌํ Python code
def recursive_dfs(v, discovered=[]):
discovered.append(v)
for w in graph[v]:
if w not in discovered:
discovered = recusrive_dfs(w, discovered)
return discovered
2) ์คํ์ ์ด์ฉํ ๋ฐ๋ณต ๊ตฌ์กฐ๋ก DFS ๊ตฌํ Pseudo code
DFS-iterative(G, v)
let S be a stack
S.push(v)
While S is not empty do
v = S.pop()
if v is not labeled as discovered then
label v as discovered
for all edges from v to w in G.adjacentEdges(v) do
S.push(w)
์คํ์ ์ด์ฉํ ๋ฐ๋ณต ๊ตฌ์กฐ๋ก DFS ๊ตฌํ Python code
def iterative_dfs(graph, start_v):
visited = []
stack = [start_v]
while stack:
v = stack.pop()
if v not in visited:
visited.append(v)
for w in graph[v]:
stack.append(w)
return visited
728x90
'๐ง๐ปโ๐ป ์๊ณ ๋ฆฌ์ฆ > ๊ทธ๋ํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ณต์ง์ฌํญ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
- Total
- Today
- Yesterday
๋งํฌ
TAG
- useState
- ํจ์
- BOJ
- Python
- ๋ฆฌ์กํธ
- ํ์ด์ฌ
- ์๋ฌ
- Browser
- ์๋ฐ์คํฌ๋ฆฝํธ
- react
- CSS
- state
- github
- git
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์ ๋ ฌ
- DOM
- error
- DB
- ์๊ณ ๋ฆฌ์ฆ
- Context API
- JavaScript
- mdn
- React Query
- ๋ธ๋ผ์ฐ์
- ๊ทธ๋ํ
- leetcode
- zustand
- ์๋ฃ๊ตฌ์กฐ
- Component
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
๊ธ ๋ณด๊ดํจ
250x250