[백준] 11725번-(Python 파이썬) - Tree, dfs, bfs

Choe Dong Ho·2021년 7월 5일
0

백준(python)

목록 보기
42/47

문제링크 : https://www.acmicpc.net/problem/11725

트리순회 문제 다음으로 바로 공부한 문제이다.
루트가 1 번으로 주어졌으므로 bfs나 dfs를 이용해 1번부터 시작해서 노드들을 순회하면 되는 문제이다.

import sys
from collections import deque

input = sys.stdin.readline

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

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

def bfs():
    q = deque()
    q.append(1)
    while q:
        node = q.popleft()
        for i in graph[node]:
            if parent[i] == 0:
                parent[i] = node
                q.append(i)

    return parent

bfs()

for i in parent[2:]:
    print(i)
profile
i'm studying Algorithm

0개의 댓글