[백준 BFS] 트리의 부모 찾기(python)

이진규·2022년 1월 21일
1

백준(PYTHON)

목록 보기
3/115

문제

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

나의 코드 (답안 참조)

"""
1. 아이디어
각 노드별로 bfs로 탐색을 하면서 방문한 곳이 이전에 방문한 적이 없다면 해당 노드를 
부모 노드로 기록하고 탐색을 이어간다.

2. 시간복잡도
O(N)
"""

from sys import stdin
from collections import deque
input = stdin.readline

n = int(input())
tree = [ [] for _ in range(n+1) ]
parent = [0] * (n+1)

for _ in range(n-1):
    a, b = map(int, input().split())
    tree[a].append(b)
    tree[b].append(a)

def bfs():
    q = deque([1])

    while q:
        node = q.popleft()

        for i in tree[node]:
            if parent[i] == 0:
                parent[i] = node
                q.append(i)

bfs()

for i in parent[2:]:
    print(i)
    

참고사항

느낀점

먼가 헷갈린다. 자주 풀어봐야지;;

profile
항상 궁금해하고 공부하고 기록하자.

0개의 댓글