https://www.acmicpc.net/problem/11725
11725번: 트리의 부모 찾기
루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.
www.acmicpc.net
# 노드의 부모 구하기
import sys
input = sys.stdin.readline
N = int(input())
arr = [[] for _ in range(N+1)]
for _ in range(N-1):
a, b = map(int,input().split())
arr[a].append(b)
arr[b].append(a)
visited = [False] * (N+1) # 1부터 N까지 이용할 것
ans = [0] * (N+1) # 정답인 부모 리스트
def dfs(s): # s는 시작점(트리의 루트인 1)
visited[s] = True
stack = []
stack.append(s)
while stack:
w = stack.pop()
for i in arr[w]: # 꺼낸 노드와 연결된 노드들에 대해
if visited[i] == False:
stack.append(i)
visited[i] = True
ans[i] = w
dfs(1)
for i in range(2, N+1): # 루트 노드를 제외한 모든 노드들에 대해
print(ans[i])
'백준' 카테고리의 다른 글
백준 27527. 배너 걸기 (0) | 2024.03.01 |
---|---|
백준 28353. 고양이 카페 (0) | 2024.02.28 |
백준 2531. 회전 초밥 (0) | 2023.11.13 |
백준 1135. 뉴스 전하기 (0) | 2023.11.07 |
백준 1939. 중량제한 (0) | 2023.11.03 |