[백준] 11725 (실버2)

zunzero·2022년 8월 27일
0

알고리즘(파이썬)

목록 보기
34/54

그래프들이 노드와 간선으로 쭉 이어진 모습과 각 노드들을 모두 탐색해야 하는 걸 보니 dfs/bfs 문제인 것 같다는 생각이 든다.

# dfs
import sys
sys.setrecursionlimit(10**9)


def dfs(start, tree, parent):
    for i in tree[start]:
        if parent[i] == 0:
        	# 방문 체크, 핵심 로직
            parent[i] = start
            dfs(i, tree, parent)


def main():
    n = int(input())
	# 그래프 구축
    tree = [[] for _ in range(n + 1)]
    for _ in range(n - 1):
        a, b = map(int, input().split())
        tree[a].append(b)
        tree[b].append(a)
	# 각 노드의 부모 노드 = 0 (초기값)
    parent = [0 for _ in range(n + 1)]

    dfs(1, tree, parent)

    for i in range(2, n + 1):
        print(parent[i])


main()

어렵지 않게 풀 수 있다.!

profile
나만 읽을 수 있는 블로그

0개의 댓글