[Baekjoon/๐ฅSilverโ ก] 11725: ํธ๋ฆฌ์ ๋ถ๋ชจ ์ฐพ๊ธฐ
Intro
๐ฉ ๋ฌธ์ ๋ bfs, dfs ๋๊ฐ์ง ๋ฐฉ์์ผ๋ก ํด๊ฒฐํ ์ ์๋ค.
- ๋ ๋ฐฉ์์ ๊ณตํต์ ์ ๋ ธ๋๋ฅผ ํ์ํ๋ ๊ณผ์ ์์ ์ง์ ๋ ธ๋๋ฅผ ๋ถ๋ชจ๋ ธ๋๋ก ์ค์ ํ๋ ๊ฒ์ด๋ค.
Algoritm๐ฉโ๐ป: dfs
#21.01.27
#11725: ํธ๋ฆฌ์ ๋ถ๋ชจ ์ฐพ๊ธฐ
import sys
sys.setrecursionlimit(10**6)
def dfs(n):
for i in lst[n-1]:
if parent[i] == 0:
parent[i] = n # ์ง์ ๋
ธ๋๋ฅผ ๋ถ๋ชจ๋ก ์ง์ !
dfs(i)
N = int(sys.stdin.readline())
lst = [[] for _ in range(N)]
parent = [0 for _ in range(N+1)]
for _ in range(N-1):
n1, n2 = map(int, sys.stdin.readline().split())
lst[n1-1].append(n2)
lst[n2-1].append(n1)
dfs(1)
for i in parent[2:]:
print(i)
Algorithm๐จโ๐ป: bfs
#21.01.27
#11725: ํธ๋ฆฌ์ ๋ถ๋ชจ ์ฐพ๊ธฐ
import sys
def bfs():
global check
queue = [1]
while queue:
p = queue.pop(0)
for i in lst[p-1]:
if parent[i] == 0:
parent[i] = p # ์ง์ ๋
ธ๋๋ฅผ ๋ถ๋ชจ๋ก ์ค์ !
queue.append(i)
N = int(sys.stdin.readline())
lst = [[] for _ in range(N)]
parent = [0 for _ in range(N+1)]
for _ in range(N-1):
n1, n2 = map(int, sys.stdin.readline().split())
lst[n1-1].append(n2)
lst[n2-1].append(n1)
bfs()
for i in parent[2:]:
print(i)
์ด๋ฒ ํฌ์คํ ์ ์ฌ๊ธฐ์
๋!! ~(หโพห~)
๋๊ธ๋จ๊ธฐ๊ธฐ