๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Gold5] 1068๋ฒˆ_ํŠธ๋ฆฌ

Dbswnstjd 2023. 1. 4. 05:38

๋ฌธ์ œ

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

 

1068๋ฒˆ: ํŠธ๋ฆฌ

์ฒซ์งธ ์ค„์— ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 50๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” 0๋ฒˆ ๋…ธ๋“œ๋ถ€ํ„ฐ N-1๋ฒˆ ๋…ธ๋“œ๊นŒ์ง€, ๊ฐ ๋…ธ๋“œ์˜ ๋ถ€๋ชจ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋งŒ์•ฝ ๋ถ€๋ชจ๊ฐ€ ์—†๋‹ค๋ฉด (๋ฃจํŠธ) -1์ด ์ฃผ์–ด์ง„๋‹ค

www.acmicpc.net

ํ’€์ด

# ๋ฐฑ์ค€ 1068๋ฒˆ ๋ฌธ์ œ - ํŠธ๋ฆฌ
n = int(input())
node = list(map(int, input().split()))
m = int(input())
cnt = 0

def dfs(n, node):
    node[n] = -2
    for i in range(len(node)):
        if n == node[i]:
            dfs(i, node)

dfs(m, node)
for i in range(len(node)):
    if node[i] != -2 and i not in node:
        cnt += 1
print(cnt)