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 ํ๋ฉด์ ์ฝ๋๊ฐ ์ข๋ ๊ฐ๊ฒฐํด์ง๊ณ ์๊ฐ์ด๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ค์ผ ์ ์๋ ๋ฐฉ์์ผ๋ก ์๊ฐํด๋ณด๊ฒ ๋จ.
'๐ค > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 1012: ์ ๊ธฐ๋ ๋ฐฐ์ถ (Python) (0) | 2022.01.31 |
---|---|
๋ฐฑ์ค 2667: ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ (Python) (0) | 2022.01.31 |
๋ฐฑ์ค 1260: DFS์ BFS (Python) (0) | 2022.01.29 |
๋ฐฑ์ค 13305: ์ฃผ์ ์ (Python) (0) | 2022.01.21 |
๋ฐฑ์ค 1789: ์๋ค์ ํฉ (Python) (0) | 2021.10.02 |