๋ด ํฌ์คํ : [Python/ํ์ด์ฌ] [๐ฅ2] ๋ฐฑ์ค ์๊ณ ๋ฆฌ์ฆ 11724 - ์ฐ๊ฒฐ ์์์ ๊ฐ์
์ด์ ์ ํฌ์คํ
ํ "์ฐ๊ฒฐ ์์์ ๊ฐ์"๋ฌธ์ ์ DFS๊ฐ๋
๊ณผ ํ์ด๋ฐฉ๋ฒ์ด ๋งค์ฐ ํก์ฌํ๋ค!
๋๊ฐ์ด ์
๋ ฅ๊ฐ ์ ์ฅ, ๋
ธ๋๋ฅผ MAP ํํ๋ก ์ ์ฅํ๊ณ , visited๋ผ๋ ๋น list๋ฅผ ๋ง๋ค์ด,
dfs(i)
ํจ์๋ก ๋ฐฉ๋ฌธ๊ฒ์ฌ๋ฅผ ํ๋ฉด์ ์ฒซ ๋ฐฉ๋ฌธ์ visited[i]=1
์ฒดํฌํด์ฃผ๋ฉด ๋๋ค.
๋ค๋ง, ์ด์ ํฌ์คํ
๊ณผ ๋ฌ๋ผ์ง ์ ์ 1๋ฒ ์ปดํจํฐ๊ฐ ์๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ ธ์ ๋๋ง ๊ฒ์ฌํ๋ฉด ๋๋ค.
๊ทธ๋ฆฌ๊ณ sum(visited)-1
์ ์ถ๋ ฅํด์ฃผ๋ฉด ๋! (1์ปดํจํฐ ์์ ์ ๋นผ์ผํ๋๊น)
๐๐ป ex) n=7์ผ ๋ 1-2-3-4๋ง ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉด, 5-6-7์ ์๋ฐ์ด๋ฌ์ค ๊ฑธ๋ ธ๋ ๋ง๋ ๊ฒ์ฌํ ํ์๊ฐ ์์!
dfs()
ํจ์๋ฅผ ๋ง๋ค๊ณ , for loof
๋ก amap[1]์ ์์(i)๋ง dfs(i)
๋ฅผ ํธ์ถํ์for loof
๋ก i๋ฅผ 1~n๊น์ง ๋ค ๋ ํ์๊ฐ ์์)import sys
input = sys.stdin.readline
n = int(input().rstrip())
m = int(input().rstrip())
node = [list(map(int, input().split())) for _ in range(m)]
amap = [[] for _ in range(n+1)]
visited = [0]*(n+1)
for u,v in node:
amap[u].append(v)
amap[v].append(u)
def dfs(v):
visited[v] = 1
for i in amap[v]:
if not visited[i]:
dfs(i)
for i in amap[1]:
if not visited[i]:
dfs(i)
print(sum(visited)-1) #1๋ฒ์ปดํจํฐ ์์ ์นด์ดํ
์ ๋นผ์ฃผ๊ธฐ
import sys
input = sys.stdin.readline
n = int(input().rstrip())
m = int(input().rstrip())
node = [list(map(int, input().split())) for _ in range(m)]
amap = [[] for _ in range(n+1)]
#Graph ํ์์ผ๋ก ์ ์ฅ
for u,v in node:
amap[u].append(v)
amap[v].append(u)
visited = [0]*(n+1)
def dfs(v):
visited[v] = 1 #๋ฐฉ๋ฌธ์ํ ๋
ธ๋๋ง๋ค ๋ฐฉ๋ฌธ๊ธฐ๋ก 0 โ 1
for i in amap[v]: #ํด๋น ๋
ธ๋์ ์ฐ๊ฒฐ๋ ๋
ธ๋๋ค ๋ฐฉ๋ฌธ๊ฒ์ฌ
if not visited[i]:
dfs(i)
for i in amap[1]: #amap[1] ์์๋ง ๊ฒ์ฌํ๋ฉด ๋จ
if not visited[i]:
dfs(i)
print(sum(visited)-1) #1๋ฒ์ปดํจํฐ ์นด์ดํ
๋นผ๊ธฐ
โ"for i in amap[1]"๋ง ๊ฒ์ฌํ๋ ์ด์
์๊ณ ๋ฆฌ์ฆ ๊ตฌํ์์ 1๋ฒ์์ amap์ผ๋ก [1]๋ฒ ์ปดํจํฐ์ ์ฐ๊ฒฐ๋ ๋
ธ๋๋ฅผ amap[1]์ ์ ์ฅํด๋๊ธฐ ๋๋ฌธ!
amap[1] = 2, 5
amap[2] = 1, 3, 5
...
...
amap[7] = 4
์ด๋ ๊ฒ ์ธ๋ฑ์ฑ ํด๋๊ธฐ ๋๋ฌธ์ amap[1]์ 1๋ฒ์ปดํจํฐ์ ์ฐ๊ฒฐ๋
ธ๋๋ง ๊ฒ์ฌํจ
๋ด ํฌ์คํ : [Python/ํ์ด์ฌ] [๐ฅ2] ๋ฐฑ์ค ์๊ณ ๋ฆฌ์ฆ 11724 - ์ฐ๊ฒฐ ์์์ ๊ฐ์
์ด์ ํฌ์คํ
์์ ๋ค๋ค๋ดค๋ ์ ํ์ DFS ๊ฐ๋
์ด๋ผ ํ์ดํ๊ธฐ ์์ํ๋ค.
์ด์ ํฌ์คํ
์์๋ ์ธ๊ธํ๋๋ก, DFS ๋ผ๊ณ ํด์ dfs()
ํจ์ ์์์ ๋ฌด์กฐ๊ฑด ํด๊ฒฐํ๋ ค๊ณ ํ์ง๋ง๊ณ ,
๋ฅผ ์๊ฐํ๋ฉด์ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณํ์!