https://www.acmicpc.net/problem/11725
11725번: 트리의 부모 찾기
루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.
www.acmicpc.net
1을 시작으로 dfs든 bfs든 하면서 parent를 업데이트해준다.
#dfs
import sys
sys.setrecursionlimit(10**6)
input=sys.stdin.readline
def dfs(node=1):
for next_node in arr[node]:
if parent[next_node]==-1:
parent[next_node]=node
dfs(next_node)
n=int(input())
parent=[-1 for _ in range(n+1)]
arr=[[]for _ in range(n+1)]
for _ in range(n-1):
a,b=map(int,input().split())
arr[a].append(b)
arr[b].append(a)
dfs()
for p in parent[2:]:
print(p)
#bfs
import sys
from collections import deque
input=sys.stdin.readline
def bfs(root=1):
que=deque([root])
while que:
node=que.popleft()
for next_node in arr[node]:
if parent[next_node]==-1:
parent[next_node]=node
que.append(next_node)
n=int(input())
parent=[-1 for _ in range(n+1)]
arr=[[]for _ in range(n+1)]
for _ in range(n-1):
a,b=map(int,input().split())
arr[a].append(b)
arr[b].append(a)
bfs()
for p in parent[2:]:
print(p)'boj' 카테고리의 다른 글
| 백준 11404플로이드 (0) | 2022.05.12 |
|---|---|
| 백준 1167 트리의 지름 (0) | 2022.05.12 |
| 백준 2250 트리의 높이와 너비 (0) | 2022.05.10 |
| 백준 2580 스도쿠 (0) | 2022.05.09 |
| 백준4179불! (0) | 2022.05.07 |