๐ค/๋ฐฑ์ค
๋ฐฑ์ค 2606: ๋ฐ์ด๋ฌ์ค (Python)
sssbin
2022. 1. 29. 14:30
https://www.acmicpc.net/problem/2606
2606๋ฒ: ๋ฐ์ด๋ฌ์ค
์ฒซ์งธ ์ค์๋ ์ปดํจํฐ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ปดํจํฐ์ ์๋ 100 ์ดํ์ด๊ณ ๊ฐ ์ปดํจํฐ์๋ 1๋ฒ ๋ถํฐ ์ฐจ๋ก๋๋ก ๋ฒํธ๊ฐ ๋งค๊ฒจ์ง๋ค. ๋์งธ ์ค์๋ ๋คํธ์ํฌ ์์์ ์ง์ ์ฐ๊ฒฐ๋์ด ์๋ ์ปดํจํฐ ์์ ์๊ฐ ์ฃผ์ด
www.acmicpc.net
bfs ๋จผ์ ํ๊ณ dfs ํ์๋ค
# bfs
from collections import deque
n = int(input())
m = int(input())
com = [[] for _ in range(n+1)]
for i in range(m):
data = input().split()
com[int(data[0])].append(int(data[1]))
com[int(data[1])].append(int(data[0]))
def bfs(v):
count = 0
visited = [False] * (n+1)
queue = deque([v])
visited[v] = True
while queue:
q = queue.popleft()
visited[q] = True
count += 1
for i in com[q]:
if not visited[i]:
queue.append(i)
visited[i] = True
return count-1
print(bfs(1))
# dfs
n = int(input())
m = int(input())
com = [[] for _ in range(n+1)]
for i in range(m):
d1, d2 = map(int, input().split())
com[d1].append(d2)
com[d2].append(d1)
visited = [0] * (n+1)
def dfs(v):
visited[v] = 1
for i in com[v]:
if visited[i] == 0:
dfs(i)
dfs(1)
print(sum(visited)-1)
bfs -> dfs ํ๋ฉด์ ์ฝ๋๊ฐ ์ข๋ ๊ฐ๊ฒฐํด์ง๊ณ ์๊ฐ์ด๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ค์ผ ์ ์๋ ๋ฐฉ์์ผ๋ก ์๊ฐํด๋ณด๊ฒ ๋จ.