Skip to content

Commit f8d7f0f

Browse files
authored
Merge pull request #2475 from liza0525/main
[liza0525] WEEK 04 Solutions
2 parents 461271f + 1da388c commit f8d7f0f

5 files changed

Lines changed: 197 additions & 0 deletions

File tree

โ€Žcoin-change/liza0525.pyโ€Ž

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# 7๊ธฐ ํ’€์ด
2+
# ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n * k)
3+
# - ํƒ€๊ฒŸ ์ฝ”์ธ ๊ฐ’(amount, ๋ณต์žก๋„ ๊ณ„์‚ฐ์—์„  n์œผ๋กœ ํ‘œ๊ธฐ)๊ณผ coins์˜ ๊ธธ์ด ๋งŒํผ ํƒ์ƒ‰ํ•˜๋ฉฐ ๊ณ„์‚ฐ
4+
# ๊ณต๊ฐ„ ๋ณต์žก๋„: O(n)
5+
# - ํƒ€๊ฒŸ ์ฝ”์ธ ๊ฐ’(amount, ๋ณต์žก๋„ ๊ณ„์‚ฐ์—์„  n์œผ๋กœ ํ‘œ๊ธฐ) ๋งŒํผ์˜ min_coin_count ๊ณ„์‚ฐ array๋ฅผ ์ƒ์„ฑ
6+
class Solution:
7+
# ํ•ด๋‹น ๋ฌธ์ œ๋Š” ํ˜„์žฌ ๊ฐ–๊ณ  ์žˆ๋Š” ๋ˆ์œผ๋กœ ๊ฐ ์ฝ”์ธ ๊ฐ’์„ ๋งŒ๋“œ๋Š” ๋ฐ์— ๋™์ „์„ ์–ผ๋งˆ๋‚˜ ์“ฐ๋Š”์ง€ ๊ณ„์‚ฐํ•˜์—ฌ
8+
# ๊ทธ ์กฐํ•ฉ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๊ณ„์† ์ฐพ์•„๊ฐ€๋Š” ๋ฌธ์ œ๋กœ, min_coin_count๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
9+
def coinChange(self, coins: List[int], amount: int) -> int:
10+
min_coin_count = [-1 for _ in range(amount + 1)] # ๊ฐ ์ธ๋ฑ์Šค๋Š” ์ฝ”์ธ ๊ฐ’, value๋Š” ํ•ด๋‹น ์ฝ”์ธ ๊ฐ’์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋™์ „์˜ ๊ฐœ์ˆ˜(๋งŒ๋“ค ์ˆ˜ ์—†์„ ๋• -1)
11+
min_coin_count[0] = 0 # ์ฝ”์ธ ๊ฐ’์ด 0์ผ ๋•Œ๋Š” ๋™์ „์„ ์“ฐ์ง€ ์•Š์œผ๋ฉด ๋˜๋ฏ€๋กœ ๋ฌด์กฐ๊ฑด 0์ด ๋œ๋‹ค.
12+
13+
for target_amount in range(1, len(min_coin_count)):
14+
# ๊ฐ ์ฝ”์ธ ๊ฐ’์— ๋Œ€ํ•ด ์ตœ์†Œ ๋™์ „ ๊ฐœ์ˆ˜๋ฅผ ์ฐพ๋Š”๋‹ค.
15+
for coin in coins:
16+
if target_amount - coin < 0:
17+
# ๋Œ€์ƒ ์ฝ”์ธ ๊ฐ’๋ณด๋‹ค ์ฒดํฌํ•  ์ฝ”์ธ ๊ฐ’์ด ํฐ ๊ฒฝ์šฐ์—๋Š” ์กฐํ•ฉ์„ ๋งŒ๋“ค ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋„˜๊ธด๋‹ค
18+
continue
19+
if min_coin_count[target_amount - coin] < 0:
20+
# target_amount - coin(๋ณด์ˆ˜)์„ ๋งŒ๋“ค ์ˆ˜ ์—†์œผ๋ฉด target_amount๋„ ๋งŒ๋“ค ์ˆ˜ ์—†์Œ
21+
# ์˜ˆ์‹œ) target=5, coin=3 โ†’ ๋ณด์ˆ˜ 2๋ฅผ ๋ชป ๋งŒ๋“ค๋ฉด 5๋„ ๋ชป ๋งŒ๋“ฆ
22+
continue
23+
24+
# ์œ„ ๋‘ ๊ฐ€์ง€ ์กฐ๊ฑด๋งŒ ๋„˜์–ด๊ฐ€๋ฉด ๋™์ „ ๊ฐœ์ˆ˜๋ฅผ min_coin_count[target_amount]์— ์ •ํ•ด์„œ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ
25+
if min_coin_count[target_amount] == -1:
26+
# ๊ฐ’์ด -1์ธ ๊ฒฝ์šฐ์—๋Š” ์ฒ˜์Œ์œผ๋กœ ๊ณ„์‚ฐํ•ด์„œ ๋„ฃ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—
27+
# min_coin_count[target_amount - coin]์—๋‹ค๊ฐ€ 1์„ ๋”ํ•ด์„œ(coin ํ•œ ๊ฐœ๋ฅผ ์ถ”๊ฐ€ ํ•œ๋‹ค๋Š” ์˜๋ฏธ) min_coin_count[target_amount]์— ํ• ๋‹น
28+
min_coin_count[target_amount] = min_coin_count[target_amount - coin] + 1
29+
else:
30+
# ๊ฐ’์ด -1์ด ์•„๋‹Œ ๊ฒฝ์šฐ๋Š” ์ด์ „์— ์ €์žฅ๋œ ๋™์ „ ๊ฐœ์ˆ˜๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ
31+
# ์ด์ „ ๊ฒฐ๊ณผ ๊ฐ’๊ณผ min_coin_count[target_amount - coin] + 1์˜ ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ๋” ์ ์€ ์ˆ˜๋ฅผ ์ €์žฅํ•œ๋‹ค.
32+
min_coin_count[target_amount] = min(
33+
min_coin_count[target_amount],
34+
min_coin_count[target_amount - coin] + 1
35+
)
36+
37+
# ๋ชจ๋‘ ๊ณ„์‚ฐํ•œ ํ›„ min_coin_count[amount]๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (== amount๋ฅผ ๋งŒ๋“œ๋Š” ๋™์ „์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜)
38+
return min_coin_count[amount]

โ€Žmaximum-depth-of-binary-tree/liza0525.pyโ€Ž

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,25 @@ def find_max_depth(cur_node, depth):
3636
max_depth = find_max_depth(root, 0)
3737

3838
return max_depth
39+
40+
41+
# 7๊ธฐ ํ’€์ด
42+
# ์‹œ๊ฐ„๋ณต์žก๋„: O(n)
43+
# - ํŠธ๋ฆฌ์˜ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ํ•œ ๋ฒˆ ์”ฉ ๋ฐฉ๋ฌธํ•˜๋ฏ€๋กœ, ์ „์ฒด ๋…ธ๋“œ ์ˆ˜ n๋งŒํผ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆผ
44+
# ๊ณต๊ฐ„๋ณต์žก๋„: O(n)
45+
# - ํŠธ๋ฆฌ์˜ ๋†’์ด๋งŒํผ ์žฌ๊ท€ ์Šคํƒ์ด ์Œ“์ž„. ์ตœ์•…์˜ ๊ฒฝ์šฐ๋Š” ํŠธ๋ฆฌ๊ฐ€ ํ•œ ์ชฝ์œผ๋กœ ์น˜์šฐ์ณค์„ ๋•Œ์ด๋ฏ€๋กœ ๋…ธ๋“œ n๋งŒํผ์˜ ์ตœ๋Œ€ ์Šคํƒ์„ ์Œ“๊ฒŒ ๋จ
46+
class Solution:
47+
def maxDepth(self, root: Optional[TreeNode]) -> int:
48+
def find_depth(node, depth):
49+
if not node:
50+
# node๊ฐ€ None์ผ ๋•Œ๋Š” depth์„ ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜
51+
return depth
52+
# ํ˜„์žฌ ๋…ธ๋“œ ๊ธฐ์ค€ ์™ผ์ชฝ ๋…ธ๋“œ ์ชฝ์˜ ๊นŠ์ด ํƒ์ƒ‰
53+
left_depth = find_depth(node.left, depth + 1)
54+
# ํ˜„์žฌ ๋…ธ๋“œ ๊ธฐ์ค€ ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ ์ชฝ์˜ ๊นŠ์ด ํƒ์ƒ‰
55+
right_depth = find_depth(node.right, depth + 1)
56+
57+
# ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ ์ค‘ ๋” ๊นŠ์€ depth๋ฅผ ๋ฐ˜ํ™˜
58+
return max(left_depth, right_depth)
59+
60+
return find_depth(root, 0)

โ€Žmerge-two-sorted-lists/liza0525.pyโ€Ž

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,40 @@ def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) ->
4141

4242
# dummy ๋…ธ๋“œ ๋‹ค์Œ๋ถ€ํ„ฐ๊ฐ€ ์‹ค์ œ ๋จธ์ง€๋œ ๋ฆฌ์ŠคํŠธ์˜ ์‹œ์ž‘์ 
4343
return root_node.next
44+
45+
46+
# 7๊ธฐ ํ’€์ด
47+
# ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n + m)
48+
# - list1์˜ ๊ธธ์ด n, list2์˜ ๊ธธ์ด m์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉฐ ํƒ์ƒ‰ํ•  ๋•Œ ์ตœ์•…
49+
# ๊ณต๊ฐ„ ๋ณต์žก๋„: O(1)
50+
# - dummy ๋…ธ๋“œ์™€ curr ๋งŒ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ถ”๊ฐ€ ๊ณต๊ฐ„ ์—†์Œ
51+
class Solution:
52+
def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:
53+
dummy = ListNode() # dummy node๋ฅผ ๋งŒ๋“ค์–ด dummy.next๋ถ€ํ„ฐ ๋ฆฌ์ŠคํŠธ๋“ค์„ ๋จธ์ง€ํ•˜๋„๋ก ํ•œ๋‹ค.
54+
curr = dummy # curr ํฌ์ธํŠธ๋ฅผ dummy์— ๋‘”๋‹ค
55+
56+
# list1๊ณผ list2 ๋ชจ๋‘๊ฐ€ ์žˆ์„ ๋•Œ ๋ฃจํ”„๋ฅผ ๋ˆ๋‹ค.
57+
# ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ผ๋„ None์ด ๋˜๋Š” ์ˆœ๊ฐ„ ๋ฃจํ”„ ํƒˆ์ถœ
58+
while list1 and list2:
59+
if list1.val < list2.val:
60+
# list1์˜ ์ˆซ์ž๊ฐ€ ๋” ์ž‘์„ ๋• curr.next์— list1์˜ ํ—ค๋“œ๋ฅผ ๋„ฃ๊ณ ,
61+
# ํฌ์ธํ„ฐ๋ฅผ next node๋กœ ์˜ฎ๊น€
62+
curr.next = list1
63+
list1 = list1.next
64+
else:
65+
# list2์˜ ์ˆซ์ž๊ฐ€ ๋” ์ž‘์„ ๋• curr.next์— list2์˜ ํ—ค๋“œ๋ฅผ ๋„ฃ๊ณ ,
66+
# ํฌ์ธํ„ฐ๋ฅผ next node๋กœ ์˜ฎ๊น€
67+
curr.next = list2
68+
list2 = list2.next
69+
70+
# ๋‹ค์Œ ๋…ธ๋“œ merge๋ฅผ ์œ„ํ•ด curr๋„ ํฌ์ธํ„ฐ๋ฅผ next๋กœ ๋ณ€๊ฒฝ
71+
curr = curr.next
72+
73+
# ๋ฃจํ”„ ํƒˆ์ถœ ํ›„ ๋‚จ์•„ ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ๊ฐ€ ์žˆ๋‹ค๋ฉด curr์˜ next์— ๋‚จ์€ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋จธ์ง€ํ•œ๋‹ค.
74+
if list1:
75+
curr.next = list1
76+
elif list2:
77+
curr.next = list2
78+
79+
# dummy ๋…ธ๋“œ๋Š” ์˜ˆ๋น„์šฉ, dummy.next๋ฅผ ๋ฆฌํ„ด
80+
return dummy.next
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# 7๊ธฐ ํ’€์ด
2+
# ์‹œ๊ฐ„ ๋ณต์žก๋„: O(log n)
3+
# - binary search๋ฅผ ์ด์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์•…์˜ ๊ฒฝ์šฐ๋Š” log n
4+
# ๊ณต๊ฐ„ ๋ณต์žก๋„: O(1)
5+
# - ๋ช‡ ๊ฐ€์ง€ ๋ณ€์ˆ˜๋งŒ ์‚ฌ์šฉ๋จ
6+
class Solution:
7+
def findMin(self, nums: List[int]) -> int:
8+
# ์–‘ ๋์„ ๋จผ์ € ์žก์•„์ค€๋‹ค
9+
left, right = 0, len(nums) - 1
10+
11+
# left๋ณด๋‹ค right๊ฐ€ ํด ๋•Œ ๊ณ„์† ๋ฃจํ”„๋ฅผ ๋ˆ๋‹ค
12+
# ์ด๋Š” left์™€ right๊ฐ€ ๊ฐ™์•„์งˆ ๋•Œ๊นŒ์ง€ ๋ˆ๋‹ค๋Š” ๋ง๊ณผ ๋™์ผํ•˜๋‹ค
13+
while left < right:
14+
# ์ค‘๊ฐ„ index ๊ณ„์‚ฐ
15+
mid = (left + right) // 2
16+
17+
if nums[mid] > nums[right]:
18+
# ์ค‘๊ฐ„ index์˜ ๊ฐ’์ด ์˜ค๋ฅธ์ชฝ index์˜ ๊ฐ’๋ณด๋‹ค ํฌ๋‹ค๋Š” ๊ฒƒ์€
19+
# ์ตœ์†Œ ๊ฐ’์ด mid ๊ธฐ์ค€ ์˜ค๋ฅธ์ชฝ ๊ตฌ์—ญ์— ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— left์„ mid์ชฝ์œผ๋กœ ์›€์ง์ธ๋‹ค.
20+
# mid์˜ ๊ฐ’ ์ž์ฒด๋Š” ์ตœ์†Œ๊ฐ’์ด ๋  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— left๋Š” ์ด๋ณด๋‹ค ํ•œ ์นธ ์˜†์œผ๋กœ ์›€์ง์—ฌ์•ผ ํ•จ
21+
left = mid + 1
22+
else:
23+
# ์ค‘๊ฐ„ index์˜ ๊ฐ’์ด ์˜ค๋ฅธ์ชฝ index์˜ ๊ฐ’๋ณด๋‹ค ์ž‘๋‹ค๋Š” ๊ฒƒ์€
24+
# ์ตœ์†Œ ๊ฐ’์ด mid ๊ธฐ์ค€ ์™ผ์ชฝ ๊ตฌ์—ญ์— ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— right๋ฅผ mid์ชฝ์œผ๋กœ ์›€์ง์ธ๋‹ค.
25+
# mid์˜ ๊ฐ’ ์ž์ฒด๋Š” ์ตœ์†Œ๊ฐ’์ด ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— right๋Š” mid ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค.
26+
right = mid
27+
28+
# left์™€ right๊ฐ€ ๊ฐ™์•„์งˆ ๋•Œ(์ตœ์†Œ๊ฐ’์„ ์ฐพ์•˜์„ ๋•Œ) ๋ฃจํ”„ ํƒˆ์ถœ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
29+
# nums[left] ๋˜๋Š” nums[right]๋ฅผ ๋ฐ˜ํ™˜
30+
return nums[left]

โ€Žword-search/liza0525.pyโ€Ž

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,73 @@ def dfs(i, j, str_index):
6565

6666
# ๋ชจ๋“  ์‹œ๋„๋ฅผ ํ•ด๋„ ๋ชป ์ฐพ์œผ๋ฉด False
6767
return False
68+
69+
70+
# 7๊ธฐ ํ’€์ด
71+
# ์‹œ๊ฐ„ ๋ณต์žก๋„: O((n * m) * 4 ^ d)
72+
# - depth์˜ ๊ธธ์ด(d)๋งŒํผ ๋„ค ๋ฐฉํ–ฅ์„ ํƒ์ƒ‰ํ•˜๋ฉฐ, ์ถœ๋ฐœ์ ์˜ ๊ฐœ์ˆ˜ n * m ๋ชจ๋‘ ํƒ์ƒ‰ํ•  ๋•Œ ์ตœ์•…์˜ ์‹œ๊ฐ„
73+
# ๊ณต๊ฐ„ ๋ณต์žก๋„: O(n * m)
74+
# - visited ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ–‰ * ์—ด์˜ ๊ฐœ์ˆ˜๋งŒํผ์˜ ๊ณต๊ฐ„์„ ํ•„์š”๋กœ ํ•จ
75+
class Solution:
76+
def exist(self, board: List[List[str]], word: str) -> bool:
77+
# ๋ณด๋“œ์˜ ํ–‰, ์—ด์˜ ๊ธธ์ด๋ฅผ ๋ฏธ๋ฆฌ ์ €์žฅ
78+
num_rows = len(board)
79+
num_cols = len(board[0])
80+
81+
# dfs ํƒ์ƒ‰ ์‹œ ์ด๋ฏธ ๋ฐฉ๋ฌธํ•œ ๊ฒฝ์šฐ๋ฅผ ์ฒดํฌํ•˜๊ธฐ ์œ„ํ•œ visited๋ฅผ ์ƒ์„ฑ
82+
visited = [[0 for _ in range(num_cols)] for _ in range(num_rows)]
83+
84+
# dfs ํƒ์ƒ‰ ์‹œ ํ•œ ์นธ์„ ๊ธฐ์ค€์œผ๋กœ ํ•˜์—ฌ 4๋ฐฉํ–ฅ์œผ๋กœ ํƒ์ƒ‰ ๊ฐ€๋Šฅํ•˜๊ฒŒ directions์„ ๋งŒ๋“ ๋‹ค.
85+
# ์ˆœ์„œ๋Œ€๋กœ ์•„๋ž˜๋กœ ์ง„์ถœ, ์œ„๋กœ ์ง„์ถœ, ์™ผ์ชฝ์œผ๋กœ ์ง„์ถœ, ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ง„์ถœ
86+
directions = [(0, 1), (0, -1), (-1, 0), (1, 0)]
87+
88+
def check_exist_word(i, j, depth):
89+
if depth == len(word) - 1:
90+
# depth๊ฐ€ word์˜ ๊ธธ์ด์— ๊ฐ€๊นŒ์›Œ์ง€๋ฉด(๋ฐฐ์—ด์ด๋ผ -1 ํ•ด์คŒ)
91+
# ํƒ์ƒ‰์„ ๋งˆ์ณค์œผ๋ฏ€๋กœ True๋ฅผ ๋ฐ˜ํ™˜
92+
return True
93+
94+
# ํ˜„์žฌ์˜ ์นธ์€ ๋ฐฉ๋ฌธํ–ˆ๋‹ค๋Š” ์˜๋ฏธ๋กœ 1๋กœ ๋ณ€๊ฒฝ
95+
visited[i][j] = 1
96+
for dir_i, dir_j in directions:
97+
# ๋„ค ๋ฐฉํ–ฅ์„ ์ˆœ์ฐจ๋กœ ํƒ์ƒ‰ํ•œ๋‹ค.
98+
# ๋‹ค์Œ ์นธ์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” next_i์™€ next_j๋ฅผ ๋จผ์ € ๊ณ„์‚ฐ
99+
next_i, next_j = i + dir_i, j + dir_j
100+
if not (
101+
0 <= next_i < num_rows # ๋‹ค์Œ ์นธ์˜ ํ–‰ ๋ฒˆํ˜ธ๊ฐ€ ํ–‰์˜ ๊ธธ์ด ๋‚ด์— ์žˆ๊ณ 
102+
and 0 <= next_j < num_cols # ๋‹ค์Œ ์นธ์˜ ์—ด ๋ฒˆํ˜ธ๊ฐ€ ์—ด์˜ ๊ธธ์ด ๋‚ด์— ์žˆ๊ณ 
103+
and not visited[next_i][next_j] # ์•„์ง ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ
104+
and board[next_i][next_j] == word[depth + 1] # ๋‹ค์Œ ๊ธ€์ž๊ฐ€ word์˜ ๋‹ค์Œ ๊ธ€์ž์— ํ•ด๋‹นํ•ด์•ผ ํ•จ
105+
):
106+
# ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ํƒ์ƒ‰ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋‹ค์Œ ๋ฐฉํ–ฅ์„ ์ฐพ๋Š”๋‹ค
107+
continue
108+
109+
# ์œ„์˜ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•˜๋ฉด ํƒ์ƒ‰ํ•ด๋„ ๋œ๋‹ค.
110+
exist_word = check_exist_word(
111+
next_i,
112+
next_j,
113+
depth + 1 # word์˜ ๋‹ค์Œ index๋ฅผ ์ฐพ์•„์•ผ ํ•จ
114+
)
115+
if exist_word:
116+
# ๋‹จ์–ด๋ฅผ ์ฐพ์•˜๋‹ค๊ณ  ํ•˜๋ฉด early return
117+
return True
118+
119+
# ๋ฐฑํŠธ๋ž˜ํ‚น์„ ์œ„ํ•ด ํ˜„์žฌ ์นธ์˜ visited ๊ฐ’์„ ์›๋ณตํ•œ๋‹ค.
120+
visited[i][j] = 0
121+
122+
# ๋‹จ์–ด๋ฅผ ์ฐพ์ง€ ๋ชปํ–ˆ์„ ๋• False ๋ฐ˜ํ™˜
123+
return False
124+
125+
for i in range(num_rows):
126+
for j in range(num_cols):
127+
if board[i][j] != word[0]:
128+
# ์ถœ๋ฐœ ๊ธ€์ž๊ฐ€ word์˜ ์ฒซ ๊ธ€์ž๋ž‘ ๊ฐ™์ง€ ์•Š์œผ๋ฉด ํƒ์ƒ‰ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋„˜๊ธด๋‹ค.
129+
continue
130+
131+
exist_word = check_exist_word(i, j, 0)
132+
if exist_word:
133+
# ๋‹จ์–ด๋ฅผ ์ฐพ์•˜์œผ๋ฉด ํƒ์ƒ‰์„ ๋”์ด์ƒ ํ•˜์ง€ ์•Š์•„๋„ ๋˜๋ฏ€๋กœ early return
134+
return True
135+
136+
# ๋ณด๋“œ์˜ ๋ชจ๋“  ํƒ์ƒ‰์„ ํ•ด๋„ ์ฐพ์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ์—๋Š” False ๋ฐ˜ํ™˜
137+
return False

0 commit comments

Comments
ย (0)