Skip to content

Commit 91e1fbe

Browse files
committed
Add detailed explanation for clone graph problem
1 parent c8ff1f9 commit 91e1fbe

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

โ€Žclone-graph/KwonNayeon.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,25 @@
2929
- N: ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜
3030
- dictionary์™€ ์žฌ๊ท€ ํ˜ธ์ถœ ์Šคํƒ ๊ณต๊ฐ„
3131
32+
ํ’€์ด ๋ฐฉ๋ฒ•:
33+
- ๋ฌธ์ œ์—์„œ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ: Deep copy
34+
- Base case: ๋นˆ ๊ทธ๋ž˜ํ”„ ์ฒ˜๋ฆฌ
35+
- ๋”•์…”๋„ˆ๋ฆฌ ์ƒ์„ฑ ํ›„ dfs
36+
- ๋งŒ์•ฝ ์ด๋ฏธ ๋ณต์‚ฌํ•œ ๋…ธ๋“œ๋ผ๋ฉด ํ•ด๋‹น ๋ณต์‚ฌ๋ณธ์„ ๋ฐ˜ํ™˜ํ•จ
37+
- ์•„๋‹ˆ๋ผ๋ฉด, ์ƒˆ๋กœ์šด ๋…ธ๋“œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋”•์…”๋„ˆ๋ฆฌ์— ์ €์žฅ
38+
- ์ด์›ƒ ๋…ธ๋“œ์˜ ๊ฒฝ์šฐ์—๋„ dfs()๋กœ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ค์–ด์„œ ํ˜„์žฌ ๋…ธ๋“œ์˜ neighbors ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€ํ•จ
39+
- ์ฃผ์–ด์ง„ ๋…ธ๋“œ๋ถ€ํ„ฐ ์žฌ๊ท€ ์‹œ์ž‘
40+
3241
# Definition for a Node.
3342
class Node:
3443
def __init__(self, val = 0, neighbors = None):
3544
self.val = val
3645
self.neighbors = neighbors if neighbors is not None else []
37-
38-
์ฐธ๊ณ  ์‚ฌํ•ญ:
39-
- ํ˜ผ์ž ํ’€๊ธฐ ์–ด๋ ค์›Œ์„œ, ๋ฌธ์ œ์™€ ๋‹ต์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์— ์ง‘์ค‘ํ–ˆ์Šต๋‹ˆ๋‹ค!
4046
"""
4147
class Solution:
4248
def cloneGraph(self, node: Optional['Node']) -> Optional['Node']:
49+
50+
# ๋นˆ ๊ทธ๋ž˜ํ”„ ์ฒ˜๋ฆฌ
4351
if not node:
4452
return None
4553

@@ -51,13 +59,11 @@ def dfs(node):
5159

5260
# ์ƒˆ๋กœ์šด ๋…ธ๋“œ ์ƒ์„ฑ
5361
copy = Node(node.val)
54-
dict[node.val] = copy # dictionary์— ๊ธฐ๋ก
62+
dict[node.val] = copy
5563

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)) # ๊ทธ ์ด์›ƒ์˜ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ค์–ด์„œ ์ถ”๊ฐ€ํ•จ
5966

6067
return copy
6168

6269
return dfs(node)
63-

0 commit comments

Comments
ย (0)