내 잡다한 노트

11725 파이썬 백준 트리 본문

백준, 프로그래머스(파이썬)

11725 파이썬 백준 트리

peanutwalnut 2022. 5. 8. 15:46

# 문제

https://www.acmicpc.net/problem/11725

 

11725번: 트리의 부모 찾기

루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.

www.acmicpc.net

 

# 소스코드

import sys
from collections import defaultdict
n = int(input())
isParent = [1]
visited = [False] * (n+1)
parent = defaultdict(list)
tree = [[] for _ in range(n+1)]
for _ in range(n-1):
    a, b = map(int, sys.stdin.readline().split())
    tree[a].append(b)
    tree[b].append(a)


while isParent:
    temp = isParent.pop()
    visited[temp] = True
    for k in tree[temp]:
        if visited[k] == False:
            parent[k].append(temp)
            isParent.append(k)

for k in range(2, len(parent)+2):
    print(*parent[k])

 

다른 풀이도 보려고 하니 죄다 bfs, dfs로 많이 풀었길래

스택으로 푼 풀이를 작성했다.