BaekJoon11725

최효준·2023년 2월 22일
0

알고리즘 문제풀이

목록 보기
41/61

문제

풀이

간단하게 dfs를 이용해서 풀면 된다. 입력되는 값을 인접리스트 방식으로 입력 받고 dfs 함수를 돌리면서 현재의 노드가 어디와 연결되어 있는지를 root 배열에 저장하면 된다.

풀이 코드

import sys
sys.setrecursionlimit(100000)
input = sys.stdin.readline

n = int(input())
graph = [[] for _ in range(n+1)]
for _ in range(n-1):
    a, b = map(int,input().split())
    graph[a].append(b)
    graph[b].append(a)

root = [0] * (n+1)

def dfs(graph, v, root):
    for i in graph[v]:
        if root[i] == 0:
            root[i] = v
            dfs(graph,i,root)
dfs(graph,1,root)

for i in range(2,n+1):
    print(root[i])    
profile
Not to be Number One, but to be Only One

0개의 댓글