๋ฐ์ํ
Notice
Recent Posts
Recent Comments
Link
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
Tags
- java
- PYTHON
- Extended Slices
- ์ ํ ํฌ ํ์ด์ฌ
- Do it
- sql
- DFS
- ๋ฐ์ค๊ทธ๋ํ
- MacOS
- ํ์ ๋ณ์
- Do_it
- ํ๋ก๊ทธ๋๋จธ์ค
- ํฉํ ๋ฆฌ์ผ ์ง๋ฒ
- matplotlib
- ์์ด
- ๋ธ๋ผ์ฐ์ ์คํ
- ์ฐธ์กฐ ๋ณ์
- ์๋ฐ
- jdbc
- np.zeros_like
- mysql
- 2BPerfect
- dacon
- ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ
- ์ด์ง์ ๋ณํ
- ์ง ๊ฐ ์์ธก ๋ถ์
- ๋ฐฑ์ค
- BFS
- ์ด๊ฒ์ด ์ทจ์ ์ ์ํ ์ฝ๋ฉํ ์คํธ๋ค
- ์ต์
Archives
- Today
- Total
๐ฆ ๊ณต๋ฃก์ด ๋์!
[๋ฐฑ์ค] Python DFS์ BFS ๋ณธ๋ฌธ
์ ์ฒด ์ฝ๋
from collections import deque
N, M, V=map(int,input().split())
matrix=[[0]*(N+1) for i in range(N+1)]
visited=[False]*(N+1)
for i in range(M):
x,y=map(int,input().split())
matrix[x][y]=matrix[y][x]=1
def dfs(matrix,V,visited):
visited[V]=True
print(V,end=' ')
for i in range(1,N+1):
if not visited[i]and matrix[V][i]==1:
dfs(matrix,i,visited)
def bfs(matrix,V,visited):
queue=deque([V])
visited[V]=False
while queue:
V=queue.popleft()
print(V,end=' ')
for i in range(1,N+1):
if visited[i] and matrix[V][i]==1:
queue.append(i)
visited[i]=False
dfs(matrix,V,visited)
print()
bfs(matrix,V,visited)
์ ๋ ฅ๊ฐ ๋ฐ๊ธฐ
N, M, V=map(int,input().split())
# map ํจ์๋ฅผ ์ ์ฉํ์ฌ map ํจ์ ๋ด ์ผ์ชฝ ํญ์ ์๋ ํจ์(int)๋ฅผ map ํจ์๋ด ์ฐ์ธก ํญ์ ์ ์ฉํ์ฌ ์ขํญ์ ๋์
ํ๋ค.
matrix=[[0]*(N+1) for i in range(N+1)]
# ํ๋ ฌ
visited=[False]*(N+1)
# ์ง๋๊ฐ ์๋ฆฌ ํ์ธ
for i in range(M):
x,y=map(int,input().split())
matrix[x][y]=matrix[y][x]=1
# ์ ๋ฐฉํฅ edge ์ค์
dfs
def dfs(matrix,V,visited):
visited[V]=True
# ์ง๋๊ฐ ์๋ฆฌ ์ฒดํฌ
print(V,end=' ')
for i in range(1,N+1):
if not visited[i]and matrix[V][i]==1:
# ์ง๋๊ฐ์ง ์๊ณ node๊ฐ์ edge๊ฐ ์์ผ๋ฉด
dfs(matrix,i,visited)
# ์ฌ๊ทํจ์
bfs
def bfs(matrix,V,visited):
queue=deque([V])
visited[V]=False
# ์ด๋ฏธ True๋ก ๋ณ๊ฒฝ์ด ๋์ผ๋ False๋ก ์ฒดํฌ
while queue:
V=queue.popleft()
# ์ ์ผ ์์ชฝ์ ์๋ ํ pop
print(V,end=' ')
for i in range(1,N+1):
if visited[i] and matrix[V][i]==1:
queue.append(i)
visited[i]=False
dfs(matrix,V,visited)
print()
bfs(matrix,V,visited)
# ์ถ๋ ฅ
๋ฐ์ํ
'Development > CodingTest' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] Python ํ๊ฒ๋๋ฒ (0) | 2022.01.01 |
---|---|
[๋ฐฑ์ค] Python ๋ฐ์ด๋ฌ์ค (0) | 2021.12.31 |
์ ํด๋ฆฌ๋ ํธ์ ๋ฒ (0) | 2021.12.28 |
๋๋น ์ฐ์ ํ์(BFS) (2) | 2021.12.28 |
๊น์ด ์ฐ์ ํ์(DFS) (0) | 2021.12.27 |
Comments