[๋ฐฑ์ค/python] 2606๋ฒ : ๋ฐ์ด๋ฌ์ค
๋ฌธ์
์ ์ข ๋ฐ์ด๋ฌ์ค์ธ ์ ๋ฐ์ด๋ฌ์ค๋ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ํ๋๋ค. ํ ์ปดํจํฐ๊ฐ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๋ฉด ๊ทธ ์ปดํจํฐ์ ๋คํธ์ํฌ ์์์ ์ฐ๊ฒฐ๋์ด ์๋ ๋ชจ๋ ์ปดํจํฐ๋ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๊ฒ ๋๋ค.
์๋ฅผ ๋ค์ด 7๋์ ์ปดํจํฐ๊ฐ <๊ทธ๋ฆผ 1>๊ณผ ๊ฐ์ด ๋คํธ์ํฌ ์์์ ์ฐ๊ฒฐ๋์ด ์๋ค๊ณ ํ์. 1๋ฒ ์ปดํจํฐ๊ฐ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๋ฉด ์ ๋ฐ์ด๋ฌ์ค๋ 2๋ฒ๊ณผ 5๋ฒ ์ปดํจํฐ๋ฅผ ๊ฑฐ์ณ 3๋ฒ๊ณผ 6๋ฒ ์ปดํจํฐ๊น์ง ์ ํ๋์ด 2, 3, 5, 6 ๋ค ๋์ ์ปดํจํฐ๋ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๊ฒ ๋๋ค. ํ์ง๋ง 4๋ฒ๊ณผ 7๋ฒ ์ปดํจํฐ๋ 1๋ฒ ์ปดํจํฐ์ ๋คํธ์ํฌ์์์ ์ฐ๊ฒฐ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ์ํฅ์ ๋ฐ์ง ์๋๋ค.
์ด๋ ๋ 1๋ฒ ์ปดํจํฐ๊ฐ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ ธ๋ค. ์ปดํจํฐ์ ์์ ๋คํธ์ํฌ ์์์ ์๋ก ์ฐ๊ฒฐ๋์ด ์๋ ์ ๋ณด๊ฐ ์ฃผ์ด์ง ๋, 1๋ฒ ์ปดํจํฐ๋ฅผ ํตํด ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๊ฒ ๋๋ ์ปดํจํฐ์ ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์๋ ์ปดํจํฐ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ปดํจํฐ์ ์๋ 100 ์ดํ์ด๊ณ ๊ฐ ์ปดํจํฐ์๋ 1๋ฒ ๋ถํฐ ์ฐจ๋ก๋๋ก ๋ฒํธ๊ฐ ๋งค๊ฒจ์ง๋ค. ๋์งธ ์ค์๋ ๋คํธ์ํฌ ์์์ ์ง์ ์ฐ๊ฒฐ๋์ด ์๋ ์ปดํจํฐ ์์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ด์ด์ ๊ทธ ์๋งํผ ํ ์ค์ ํ ์์ฉ ๋คํธ์ํฌ ์์์ ์ง์ ์ฐ๊ฒฐ๋์ด ์๋ ์ปดํจํฐ์ ๋ฒํธ ์์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
1๋ฒ ์ปดํจํฐ๊ฐ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ ธ์ ๋, 1๋ฒ ์ปดํจํฐ๋ฅผ ํตํด ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๊ฒ ๋๋ ์ปดํจํฐ์ ์๋ฅผ ์ฒซ์งธ ์ค์ ์ถ๋ ฅํ๋ค.
์ ๋ต
import sys
inpput = sys.stdin.readline
N = int(input())
computer = {n:set([]) for n in range(1,N+1)}
M = int(input())
for _ in range(M):
x, y = map(int, input().split())
computer[x].add(y)
computer[y].add(x)
answer = []
stack = [1]
while stack:
n = stack.pop()
if n not in answer:
answer.append(n)
stack.extend(computer[n])
print(len(answer)-1) # 1๋ฒ ์ปดํจํฐ ๋นผ๊ธฐ
DFS๋ฅผ ์ด์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๋ค.
์ฃผ์ํ ์ ์ 1์ด 3๊ณผ ์ฐ๊ฒฐ๋์ด ์๋ค๋ ๋ป์ 3๋ 1์ด๋ ์ฐ๊ฒฐ๋์ด ์๋ค๋ ์ ์ด๋ค.
๋ฐ๋ผ์ computer[x].add(y) ๋ฟ๋ง ์๋๋ผ computer[y].add(x)๋ ํด์ค์ผํ๋ค.
์ด ๋ ์ค๋ณต์ ํผํ๊ธฐ ์ํด ๋์ ๋๋ฆฌ์ value๊ฐ์ ์งํฉ์ผ๋ก ์ค์ ํด๋์๋ค.
์ถ๋ ฅํด์ผ๋๋ ๊ฐ์ 1๋ฒ ์ปดํจํฐ๋ฅผ ํตํด ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฐ ์ปดํจํฐ์ ์ ์ด๋ฏ๋ก
1๋ฒ ์ปดํจํฐ๋ ํฌํจ๋ len(answer)์์ 1๋ฒ ์ปดํจํฐ ๊ฐ์ 1์ ๋นผ๊ณ ์ถ๋ ฅํด์ผํ๋ค.
'๐์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/python] 1676๋ฒ : ํฉํ ๋ฆฌ์ผ 0์ ๊ฐ์ (0) | 2021.08.18 |
---|---|
[๋ฐฑ์ค/python] 9375๋ฒ : ํจ์ ์ ์ ํด๋น (0) | 2021.08.12 |
[๋ฐฑ์ค/python] 1427๋ฒ : ์ํธ์ธ์ฌ์ด๋ (0) | 2021.08.10 |
[๋ฐฑ์ค/python] 1107๋ฒ : ๋ฆฌ๋ชจ์ปจ (0) | 2021.08.10 |
[๋ฐฑ์ค/python] 18111๋ฒ : ๋ง์ธํฌ๋ํํธ (0) | 2021.08.07 |