๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜/DFS BFS

[Python] ๋ฐฑ์ค€ 24481 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—… DFS (์žฌ๊ท€!!!)

by JayAlex07 2023. 2. 11.

๐Ÿง‘‍๐Ÿ’ป [Python] ๋ฐฑ์ค€ 24481 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—… DFS (์žฌ๊ท€!!!)

Silver 2 - DFS

์‹œ์ž‘ ๊ธฐ์ค€์—์„œ ๊ฐ ๋…ธ๋“œ๊นŒ์ง€ ์–ผ๋งˆ๋‚˜ ๊ฑธ๋ฆฌ๋Š”์ง€ ์ฐพ๋Š”๋‹ค

 

๋ฌธ์ œํ’€์ด

  • ์žฌ๊ท€๋ฅผ ์ด์šฉํ•˜์—ฌ DFS๋ฅผ ์‹คํ–‰ํ•œ๋‹ค
sys.setrecursionlimit(10 ** 6)
input=sys.stdin.readline
  • ์žฌ๊ท€๋ฅผ ์ œํ•œํ•ด์ฃผ๋Š” ์‹์ด๋‹ค (์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ ์žฌ๊ท€๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์— ๊ผญ ํ•„์š”ํ•˜๋‹ค)

 

์ฝ”๋“œ

import sys

sys.setrecursionlimit(10 ** 6)
input=sys.stdin.readline

def dfs(start, count):
    result[start] = count

    for num in tree[start]:
        if result[num] == -1:
            dfs(num, count + 1)

n, m, r = map(int, input().split())

tree = [[] for _ in range(n + 1)]
result = [-1] * (n+1)

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

for t in tree:
    t.sort()

dfs(r, 0)

for i in range(1, n+1):
    print(result[i])