๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm/๋ฐฑ์ค€(BOJ)

[ ํŒŒ์ด์ฌ(python) ] ๋ฐฑ์ค€ 2606 - ๋ฐ”์ด๋Ÿฌ์Šค(DFS)

by YWTechIT 2021. 4. 19.
728x90

๐Ÿ“Œ ๋ฐฑ์ค€ 2606 - ๋ฐ”์ด๋Ÿฌ์Šค(DFS)

๋ฌธ์ œ ์„ค๋ช…


๐Ÿ’ก ๋‚˜์˜ ํ’€์ด

์ฝ”๋“œ ์—…์—์„œ ํ’€์—ˆ๋˜ ๋ฌธ์ œ์ธ๋ฐ, ๋‹ค์‹œ ํ’€์–ด๋ดค๋‹ค. DFS๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ๊ฐ€ ์žˆ์„ ๋•Œ cnt๋ฅผ ๋ˆ„์ ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค.

์ค‘์š”ํ•œ ์ ์€ cnt๋ฅผ ์ „์—ญ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•˜์ง€ ์•Š์•˜๋‹ค.

728x90
import sys
input = sys.stdin.readline

def dfs(graph, v, visited):
    global cnt
    visited[v] = True
    for i in graph[v]:
        if not visited[i]:
            cnt += 1
            dfs(graph, i, visited)

PC = int(input())
network = int(input())

graph = [[] for _ in range(PC + 1)]
visited = [False] * (PC + 1)
cnt = 0    # global variable

for i in range(network):
    node1, node2 = map(int, input().split())
    graph[node1].append(node2)
    graph[node2].append(node1)

dfs(graph, 1, visited)
print(cnt)
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€