👨💻문제 관찰
트리의 루트를 1이라고 할때 각 노드의 부모를 구하는 문제
🔑문제 해설
첫째 줄에는 노드의 개수가 주어지고 둘째 줄 부터 N-1개의 줄에 트리의 상에서 연결된 두 정점이 주어 진다.
N = int(input()) # 노드의 개수
adj = [[] for _ in range(N+1)] # 인접리스트로 노드간 관계 구현
par = [0] * (N+1) # 부모 노드 배열
for _ in range(N-1): # 노드간의 관계를 인접리스트에 넣어주기
x, y = map(int, input().split())
adj[x].append(y)
adj[y].append(x)
def DFS(x, p) # 인자는 자식과 부모, dfs로 인접리스트 탐색을 하여서 부모 관계를 찾기
for y in adj[x]:
if y == p: # 형제 노드이면 컨티뉴!
continue
par[y] = x
dfs(y, x)
dfs(1, -1)
for i in range(2, n+1): # 2번 노드 부터 부모 출력
print(par[i])