๐ ๋ฌธ์
๋ฌธ์ ์ค๋ช
n๊ฐ์ ๋ ธ๋๊ฐ ์๋ ๊ทธ๋ํ๊ฐ ์์ต๋๋ค. ๊ฐ ๋ ธ๋๋ 1๋ถํฐ n๊น์ง ๋ฒํธ๊ฐ ์ ํ์์ต๋๋ค. 1๋ฒ ๋ ธ๋์์ ๊ฐ์ฅ ๋ฉ๋ฆฌ ๋จ์ด์ง ๋ ธ๋์ ๊ฐฏ์๋ฅผ ๊ตฌํ๋ ค๊ณ ํฉ๋๋ค. ๊ฐ์ฅ ๋ฉ๋ฆฌ ๋จ์ด์ง ๋ ธ๋๋ ์ต๋จ๊ฒฝ๋ก๋ก ์ด๋ํ์ ๋ ๊ฐ์ ์ ๊ฐ์๊ฐ ๊ฐ์ฅ ๋ง์ ๋ ธ๋๋ค์ ์๋ฏธํฉ๋๋ค.
๋ ธ๋์ ๊ฐ์ n, ๊ฐ์ ์ ๋ํ ์ ๋ณด๊ฐ ๋ด๊ธด 2์ฐจ์ ๋ฐฐ์ด vertex๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, 1๋ฒ ๋ ธ๋๋ก๋ถํฐ ๊ฐ์ฅ ๋ฉ๋ฆฌ ๋จ์ด์ง ๋ ธ๋๊ฐ ๋ช ๊ฐ์ธ์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ๋ ธ๋์ ๊ฐ์ n์ 2 ์ด์ 20,000 ์ดํ์ ๋๋ค.
- ๊ฐ์ ์ ์๋ฐฉํฅ์ด๋ฉฐ ์ด 1๊ฐ ์ด์ 50,000๊ฐ ์ดํ์ ๊ฐ์ ์ด ์์ต๋๋ค.
- vertex ๋ฐฐ์ด ๊ฐ ํ [a, b]๋ a๋ฒ ๋ ธ๋์ b๋ฒ ๋ ธ๋ ์ฌ์ด์ ๊ฐ์ ์ด ์๋ค๋ ์๋ฏธ์ ๋๋ค.
์ ์ถ๋ ฅ ์
n/ vertex/ return
6 | [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] | 3 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์์ ์ ๊ทธ๋ํ๋ฅผ ํํํ๋ฉด ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ๊ณ , 1๋ฒ ๋ ธ๋์์ ๊ฐ์ฅ ๋ฉ๋ฆฌ ๋จ์ด์ง ๋ ธ๋๋ 4,5,6๋ฒ ๋ ธ๋์ ๋๋ค.
โ๏ธ ํ์ด
โ ๋ ธ๋ ๊ฐ์๋งํผ ๋ฐฐ์ด์ ๋ง๋ค๋ ค๋ค๊ฐ ๋ณต์ฌ ์ค์๋ฅผ ํด์ ์ธ๋ฐ์๋ ์ ๋ฅผ ๋จน์๋ ๋ฌธ์ ์๋ค.
[[0]]์ ๊ณฑํ๊ธฐ๋ก N๊ฐ๋ฅผ ๋ง๋ค๋ฉด, [[0], [0] ... ] ์ํ๋ ๋ชจ์์ ๋์ค์ง๋ง, ๊ฒฐ๊ณผ์ ์ผ๋ก ๋๊ฐ์ ์ฃผ์๊ฐ์ด ๋์ด๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ ์ถ๋ ฅ์ด ๋ชจ๋ ๋ด๋ถ ๋ฐฐ์ด์ ๋๊ฐ์ด ์ผ์ด๋๋ ์ฐธ์ฌ๊ฐ ๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด์ฐจ์ ๋ฐฐ์ด์ ๋ง๋ค ๋์๋ for๋ฌธ์ ์ด์ฉํด์ ์ถ๊ฐํด์ฃผ๋ ์ฝ๋๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
graph = [[0] for _ in range(n+1)]
๐ก1๋ฒ๋ถํฐ ์ถ๋ฐํ์ ๋, ๊น์ด๊ฐ ๊ฐ์ฅ ๋ ธ๋ ๊ฐ์๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ด๋ค.
ํ๋์ ํ์ ์ธํ/์์ํ์ด ์ผ์ด๋๊ธฐ ๋๋ฌธ์, ๊น์ด๋ฅผ ๋ค๋ฃฐ ๋์๋ ๋ชจ๋ ๊น์ด๋ฅผ ๋๋ฉฐ ๊ฐ ๊น์ด์ ์๋ ๋ ธ๋ ๊ฐ์๋งํผ ์ธ์ ๋ ธ๋๋ฅผ ํ์ํ๊ณ ์ถ๊ฐํด์ฃผ๋ ์์ ์ ํด์ผํ๋ค.
๐โ๏ธ ์๊ฒฌ
๊ฐ๋ ์ ์ฒ์๋ถํฐ ๋ค์ ์ก๊ณ ์ ๊ณ ๋ฅธ ์ ํ์ ์ธ ๊ทธ๋ํ ๋ฌธ์ ์ด๋ค.
์๋ฐ๋ก๋ ๋ง์ด ํด๋ด์ ์ผ๋ถ๋ฌ ํ์ด์ฌ์ผ๋ก ํ์ด๋ดค๋ค. ใ ใ ์ํ ๊ฒ ๊ฐ๋ค. ๋ฐฐ์ด๋ณต์ฌ ์ค์๋ ์์์ผ๋....
๐ป ์์ค์ฝ๋: ํ์ด์ฌ(Python)
from collections import deque
def solution(n, edge):
# [[0]]* (n+1)๋ก ํ๋ฉด ์ฃผ์๊ฐ์ ๋ณต์ฌํด์ 2์ฐจ์ ๋ฐฐ์ด์ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ๊ฐ์ด ํ๋ฒ์ ๋ฐ๋์ด๋ฒ๋ฆฐ๋ค.
# * ์ฐ์ง๋ง๊ธฐ
graph = [[0] for _ in range(n+1)]
visit = [0]*(n+1)
queue = deque()
for v1, v2 in edge:
graph[v1].append(v2)
graph[v2].append(v1)
queue.append(1)
visit[1] = 1
while queue:
answer = len(queue)
for _ in range(depth):
cur = queue.popleft()
for v in graph[cur][1:]:
if visit[v]==0:
queue.append(v)
visit[v]=1
return answer
# ์์
n = 6
vertex = [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]]
# ์ถ๋ ฅ
print(solution(n, vertex))
๐ ๐ ๐
๏ผฐ๏ฝ๏ฝ๏ฝ๏ฝ ๏ฝ ๏ผข๏ฝ ๏ผณ๏ผก๏ผน
๐๐ฉ๐ข๐ฏ๐ฌ๐ด ๐ง๐ฐ๐ณ ๐ณ๐ฆ๐ข๐ฅ๐ช๐ฏ๐จ