개미의 개열시미 프로그래밍

[알고리즘] 백준11725 트리의 부모찾기 - 파이썬 본문

알고리즘/DFS, BFS, 백트래킹

[알고리즘] 백준11725 트리의 부모찾기 - 파이썬

YunHyeok 2021. 9. 11. 15:23
728x90
반응형

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

 

11725번: 트리의 부모 찾기

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

www.acmicpc.net

 

 

[풀이 코드]

import sys

n = int(input())
graph = [[] for _ in range(n + 1)]
parent = [[] for _ in range(n + 1)]

# 트리를 그래프 형태로 생성

for _ in range(n - 1):
    i, j = map(int, sys.stdin.readline().split())
    graph[i].append(j)
    graph[j].append(i)

def dfs(start):
    stack = [start]

    while stack:
        node = stack.pop()
        for i in graph[node]:
            parent[i].append(node)
            stack.append(i)
            graph[i].remove(node)

dfs(1)

for i in range(2, len(parent)):
    print(parent[i][0])

 

- 런타임 에러때문에 고생했던 문제... 재귀로 풀면 안되는 건지 setrecursionlimit()를 해도 해결이 안됐고 재귀말고 스택을 활용해서 풀었다.

 

728x90
반응형
Comments