Coding - Algo/python
[백준] 11725번:트리의 부모 찾기 (python 파이썬)
jainn
2021. 1. 5. 21:32
728x90
문제
11725번: 트리의 부모 찾기
루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.
www.acmicpc.net
소스 코드
import sys
input = sys.stdin.readline
n = int(input())
tree = [[] for i in range(n+1)]
for i in range(n-1):
a, b = list(map(int, input().split()))
tree[a].append(b) //서로 연결해주기
tree[b].append(a)
que = [1] //1부터 시작이므로 시작 전에 큐에 1을 넣어준다.
visit = [0 for i in range(n+1)] //방문된 곳인지 확인하기 위함!
result = {} //result[4] 는 4번 노드의 부모가 담긴다.
while que:
now = que.pop(0) //현재 가르키는 노드 처음엔 1이 온다.
for i in tree[now]: //tree[1] 에 있는 요소를 꺼낸다. tree[1]에는 4와 6
if visit[i] == 0: //방문한 적이 없다면,
result[i] = now //4번 노드에 대한 출력값으로 부모인 now=1 삽입
visit[i] = 1 //방문했으므로 1으로 바꿔준다.
que.append(i) //큐에 추가해 다음 탐색을 이어가도록 한다.
for i in range(2, n+1):
print(result[i])
반응형