Skip to content

Commit 3be7ea5

Browse files
committed
feat: add graph valid tree solution
1 parent 92d3690 commit 3be7ea5

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

โ€Žgraph-valid-tree/mangodm-web.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
def validTree(self, n: int, edges: List[List[int]]) -> bool:
6+
"""
7+
- Idea: ์œ ํšจํ•œ ํŠธ๋ฆฌ๋ผ๋ฉด ๋งŒ์กฑํ•ด์•ผ ํ•˜๋Š” ์กฐ๊ฑด๋“ค์„ ํ™œ์šฉํ•˜์—ฌ ํŠธ๋ฆฌ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•œ๋‹ค.
8+
- Time Complexity: O(v + e). v์™€ e๋Š” ๊ฐ๊ฐ ๋…ธ๋“œ์˜ ์ˆ˜, ์—ฐ๊ฒฐ๋œ ์„ (์—ฃ์ง€)์˜ ์ˆ˜
9+
์ธ์ ‘ ๋ฆฌ์ŠคํŠธ๋กœ ๋งŒ๋“  ๊ทธ๋ž˜ํ”„๋ฅผ ์ˆœํšŒํ•  ๋•Œ, ๋…ธ๋“œ๋งˆ๋‹ค ์—ฐ๊ฒฐ๋œ ์—ฃ์ง€๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ํƒ์ƒ‰ํ•˜๋ฏ€๋กœ O(v + e)์ด ์†Œ์š”๋œ๋‹ค.
10+
- Space Complexity: O(v + e). v์™€ e๋Š” ๊ฐ๊ฐ ๋…ธ๋“œ์˜ ์ˆ˜, ์—ฃ์ง€์˜ ์ˆ˜
11+
๊ทธ๋ž˜ํ”„๋ฅผ ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ๋กœ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด O(v + e)์˜ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค.
12+
13+
"""
14+
if len(edges) != n - 1:
15+
return False
16+
17+
graph = {i: [] for i in range(n)}
18+
19+
for v1, v2 in edges:
20+
graph[v1].append(v2)
21+
graph[v2].append(v1)
22+
23+
visited = set()
24+
25+
def DFS(v: int) -> None:
26+
visited.add(v)
27+
28+
for adj in graph[v]:
29+
if adj not in visited:
30+
DFS(adj)
31+
32+
DFS(0)
33+
34+
return len(visited) == n

0 commit comments

Comments
ย (0)