File tree 1 file changed +14
-8
lines changed
1 file changed +14
-8
lines changed Original file line number Diff line number Diff line change 29
29
- N: ๋
ธ๋์ ๊ฐ์
30
30
- dictionary์ ์ฌ๊ท ํธ์ถ ์คํ ๊ณต๊ฐ
31
31
32
+ ํ์ด ๋ฐฉ๋ฒ:
33
+ - ๋ฌธ์ ์์ ์๊ตฌํ๋ ๊ฒ: Deep copy
34
+ - Base case: ๋น ๊ทธ๋ํ ์ฒ๋ฆฌ
35
+ - ๋์
๋๋ฆฌ ์์ฑ ํ dfs
36
+ - ๋ง์ฝ ์ด๋ฏธ ๋ณต์ฌํ ๋
ธ๋๋ผ๋ฉด ํด๋น ๋ณต์ฌ๋ณธ์ ๋ฐํํจ
37
+ - ์๋๋ผ๋ฉด, ์๋ก์ด ๋
ธ๋๋ฅผ ์์ฑํ์ฌ ๋์
๋๋ฆฌ์ ์ ์ฅ
38
+ - ์ด์ ๋
ธ๋์ ๊ฒฝ์ฐ์๋ dfs()๋ก ๋ณต์ฌ๋ณธ์ ๋ง๋ค์ด์ ํ์ฌ ๋
ธ๋์ neighbors ๋ฆฌ์คํธ์ ์ถ๊ฐํจ
39
+ - ์ฃผ์ด์ง ๋
ธ๋๋ถํฐ ์ฌ๊ท ์์
40
+
32
41
# Definition for a Node.
33
42
class Node:
34
43
def __init__(self, val = 0, neighbors = None):
35
44
self.val = val
36
45
self.neighbors = neighbors if neighbors is not None else []
37
-
38
- ์ฐธ๊ณ ์ฌํญ:
39
- - ํผ์ ํ๊ธฐ ์ด๋ ค์์, ๋ฌธ์ ์ ๋ต์ ์ดํดํ๋ ๊ฒ์ ์ง์คํ์ต๋๋ค!
40
46
"""
41
47
class Solution :
42
48
def cloneGraph (self , node : Optional ['Node' ]) -> Optional ['Node' ]:
49
+
50
+ # ๋น ๊ทธ๋ํ ์ฒ๋ฆฌ
43
51
if not node :
44
52
return None
45
53
@@ -51,13 +59,11 @@ def dfs(node):
51
59
52
60
# ์๋ก์ด ๋
ธ๋ ์์ฑ
53
61
copy = Node (node .val )
54
- dict [node .val ] = copy # dictionary์ ๊ธฐ๋ก
62
+ dict [node .val ] = copy
55
63
56
- # ๊ฐ neighbor์ ๋ํด์๋ ๊ฐ์ ๊ณผ์ ์ํ
57
- for neighbor in node .neighbors :
58
- copy .neighbors .append (dfs (neighbor ))
64
+ for neighbor in node .neighbors : # ์๋ณธ์ ๊ฐ ์ด์์ ๋ํ์ฌ
65
+ copy .neighbors .append (dfs (neighbor )) # ๊ทธ ์ด์์ ๋ณต์ฌ๋ณธ์ ๋ง๋ค์ด์ ์ถ๊ฐํจ
59
66
60
67
return copy
61
68
62
69
return dfs (node )
63
-
You canโt perform that action at this time.
0 commit comments