1260๋ฒ / DFS์ BFS / ํ์ด์ฌ
๐ ๋ฌธ์
https://velog.io/@falling_star3/๋ฐฑ์คPython-1260๋ฒ-DFS์BFS
[๋ฐฑ์ค][Python] 1260๋ฒ DFS์ BFS(DFS/BFS ๊ธฐ๋ณธ ๊ตฌํ ์์ธํ)
https://www.acmicpc.net/problem/1000๋ ์ ์ A์ B๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ค์, A+B๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.์ ๋ ฅ์ฒซ์งธ ์ค์ A์ B๊ฐ ์ฃผ์ด์ง๋ค. (0 < A, B < 10)์ถ๋ ฅ์ฒซ์งธ ์ค์ A+B๋ฅผ ์ถ๋ ฅํ๋ค.์ ์ถ๋ ฅ ์
velog.io
๐์คํ๊ฒฐ๊ณผ
๐ ๋ด๊ฐ ์๊ฐํ ํ์ด
๐ป ๋ต์
#1260
n,m,v =map(int, input().split())
# n : ์ ์ ์ ๊ฐ์, m : ๊ฐ์ ์ฐ๊ฒฐํ๋ ๋ ์ ์ ์ ๋ฒํธ. v : ํ์ ์์ํ ์ ์ ๋ฒํธ
# ๋ฐฉ๋ฌธํ ๋ฆฌ์คํธ ๋ชจ์, ์ด๊ธฐ๊ฐ 0
visited1 = [0]*(n+1)
visited2 = visited1.copy()
# 0์ผ๋ก ์ฑ์์ง n๊ฐ์ 2์ฐจ์ ํ๋ ฌ ์์ฑ
graph = [[0]*(n+1) for _ in range(n+1)]
# ๋ ์ ์ ์ ๋ฒํธ๋ฅผ ๊ทธ๋ํ์ 1๋ก ๋ณ๊ฒฝ
for i in range (m):
a,b = map(int, input().split())
graph[a][b] = graph[b][a] = 1
# dfs ํจ์ - ์ฌ๊ทํจ์
def dfs(v):
# ๋ฐฉ๋ฌธ์ 1๋ก ๋ณ๊ฒฝ
visited1[v] = 1
print(v, end = ' ')
for i in range(1,n+1):
if graph[v][i] == 1 and visited1[i] == 0:
dfs(i)
# bfsํจ์
def bfs(v):
queue = [v]
visited2[v] = 1
while queue:
v = queue.pop(0)
print(v, end =' ')
for i in range(1,n+1):
if(visited2[i] == 0 and graph[v][i] == 1):
queue.append(i)
visited2[i] = 1
dfs(v)
print()
bfs(v)
โบ๏ธ ๋ด ์ฝ๋์์ ๋ณด์ํด์ผ ํ ์
์ด๋ ค์์ ์ฐธ๊ณ ์๋ฃ๋ณด๊ณ ๊ฑฐ์ ํด๊ฒฐ. ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ ๋ ํด์ผํจ
๐ ์ฐธ๊ณ
https://velog.io/@falling_star3/๋ฐฑ์คPython-1260๋ฒ-DFS์BFS
[๋ฐฑ์ค][Python] 1260๋ฒ DFS์ BFS(DFS/BFS ๊ธฐ๋ณธ ๊ตฌํ ์์ธํ)
https://www.acmicpc.net/problem/1000๋ ์ ์ A์ B๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ค์, A+B๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.์ ๋ ฅ์ฒซ์งธ ์ค์ A์ B๊ฐ ์ฃผ์ด์ง๋ค. (0 < A, B < 10)์ถ๋ ฅ์ฒซ์งธ ์ค์ A+B๋ฅผ ์ถ๋ ฅํ๋ค.์ ์ถ๋ ฅ ์
velog.io