백준) 11725 트리의 부모찾기

박복만·2021년 7월 11일
0

알고리즘_백준

목록 보기
1/7

접근방법

  • 입력값을 가지고 트리를 인접배열로 구현한다.
  • 루트를 1로주고 순회하면서 각노드의 부모를 저장한다
    -> 부모를 저장하는 자료구조가 하나 더필요하겠다

코드

import sys
sys.setrecursionlimit(10**9)

n = int(input())

tree = [[] for _ in range(n+1)]
visit = [0] * (n+1)

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

parent = [0] * (n+1)

def dfs(tree, v, visit):
    visit[v] += 1
    for i in tree[v]:
        if visit[i]==0:
            parent[i] = v
            dfs(tree,i,visit)

dfs(tree,1,visit)

for idx,i in enumerate(parent):
    if idx > 1:
        print(i)

    

챙겨갈점

  • dfs ,bfs 개념
  • sys.setrecursionlimit(10**9) 파이썬은 재귀의 깊이 제한이 굉장히 낮으므로 올려준다.
  • 내가 원하는 정보를 어떤자료구조에 어떻게 언제 담을지 잘 고민하자.
profile
병신

0개의 댓글