컴공생의 다이어리
[파이썬, Python] 백준 11725번 : 트리의 부모 찾기 본문
백준 11725번 : 트리의 부모 찾기
내 코드
DFS 활용
import sys
from collections import defaultdict
sys.setrecursionlimit(10 ** 8)
def dfs(graph, visited, v, result):
visited[v] = True
for i in graph[v]:
if not visited[i]:
result[i] = v
dfs(graph, visited, i, result)
input = sys.stdin.readline
n = int(input())
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)
result = defaultdict(int)
dfs(arr, defaultdict(bool), 1, result)
for i in range(2, n + 1):
print(result[i])
BFS 활용
import sys
from collections import defaultdict, deque
def bfs(graph, visited, start, result):
q = deque([start])
visited[start] = True
while q:
node = q.popleft()
for i in graph[node]:
if not visited[i]:
result[i] = node
q.append(i)
visited[i] = True
input = sys.stdin.readline
n = int(input())
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)
result = defaultdict(int)
bfs(arr, defaultdict(bool), 1, result)
for i in range(2, n + 1):
print(result[i])
728x90
'Development > Algorithm & Coding Test' 카테고리의 다른 글
[파이썬, Python] 백준 1715번 : 카드 정렬하기 (0) | 2022.05.19 |
---|---|
[파이썬, Python] 백준 1717번 : 집합의 표현 (0) | 2022.05.18 |
[파이썬, Python] 백준 7662번 : 이중 우선순위 큐 (0) | 2022.05.16 |
[파이썬, Python] 백준 11286번 : 절댓값 힙 (0) | 2022.05.15 |
[파이썬, Python] 백준 2178번 : 미로 탐색 (0) | 2022.05.14 |
Comments