BFS๋๋ DFS๋ฅผ ์ฌ์ฉํ๋ ๊ทธ๋ํ ํ์ ๋ฌธ์ ๋ค.
๋จผ์ , ์ ๋ ฅ๋ฐ์ ๋ฐ์ดํฐ๋ ๋์ ๋๋ฆฌ๋ก ๊ตฌํํ์๋ค.
๋คํธ์ํฌ๋ ์๋ฐฉํฅ ๊ทธ๋ํ ์ด๋ฏ๋ก ์๋ ์ฝ๋์ ๊ฐ์ด ๋์ ๋๋ฆฌ์ ๋ ๋ฒ ์ ๋ ฅํด์ผ ํ๋ค.
๊ทธ๋ํ ๊ตฌํ
net = {}
for i in range(n):
a, b = map(int, input().split())
if a in net :
net[a].append(b)
else :
net[a] = [b]
if b in net :
net[b].append(a)
else :
net[b] = [a]
๊ฐ์ ๋คํธ์ํฌ ์์ ์๋ ์ปดํจํฐ๋ฅผ ๊ฒ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ BFS๋ฅผ ์ฌ์ฉํ๋ค.
visit์์ 1์ ๋นผ๋ฉด 1๊ณผ ์ฐ๊ฒฐ๋์ด ์๋ ์ปดํจํฐ๋ง ๋จ๊ฒ ๋๊ธฐ ๋๋ฌธ์ len(visit)-1์ ๊ฒฐ๊ณผ๋ก ์ถ๋ ฅํ๋ค.
์ ์ฒด์ฝ๋
m = int(input())
n = int(input())
net = {}
for i in range(n):
a, b = map(int, input().split())
if a in net :
net[a].append(b)
else :
net[a] = [b]
if b in net :
net[b].append(a)
else :
net[b] = [a]
queue = [1]
visit = []
while queue :
temp = queue.pop(0)
if temp not in visit :
visit.append(temp)
queue.extend(net[temp])
print(len(visit)-1)
'๐ Algorithm > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๋ฐฑ์ค 2089 (0) | 2021.03.04 |
---|---|
[Python] ๋ฐฑ์ค 1442 (0) | 2021.02.25 |
[Python] ๋ฐฑ์ค 6549 (0) | 2021.02.20 |
[Python] ๋ฐฑ์ค 1260 (0) | 2020.08.27 |
[Python] ๋ฐฑ์ค 2231 (0) | 2020.05.03 |