Skip to content

Commit

Permalink
Merge pull request #432 from haklee/main
Browse files Browse the repository at this point in the history
[haklee] week 4
  • Loading branch information
haklee authored Sep 7, 2024
2 parents 7b991fd + 80c282b commit b37ae9b
Show file tree
Hide file tree
Showing 5 changed files with 212 additions and 0 deletions.
36 changes: 36 additions & 0 deletions longest-consecutive-sequence/haklee.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
"""TC: O(n), SC: O(n)
์•„์ด๋””์–ด:
- nums ์•ˆ์—๋Š” ์—ฌ๋Ÿฌ consecutive sequence(์ดํ•˜ cs)๊ฐ€ ์กด์žฌํ•  ๊ฒƒ์ด๋‹ค(๊ธธ์ด 1์ธ ๊ฒƒ๊นŒ์ง€ ํฌํ•จ).
- ์ด cs๋Š” ๋ชจ๋‘ ์ œ์ผ ์•ž ์ˆซ์ž๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
- ์ œ์ผ ์•ž ์ˆซ์ž๋Š” ๊ทธ ์ˆซ์ž ๋ฐ”๋กœ ์•ž์— ์ˆซ์ž๊ฐ€ ์—†๋‹ค๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
- ์ฆ‰, i๊ฐ€ ์ œ์ผ ์•ž ์ˆซ์ž๋ผ๋ฉด i-1์€ nums ์•ˆ์— ์—†๋‹ค.
- nums์—์„œ ์ œ์ผ ์•ž ์ˆซ์ž๋ฅผ ์ฐพ์€ ๋‹ค์Œ, ์ด ์ˆซ์ž๋ถ€ํ„ฐ ๋’ค๋กœ ์ด์–ด์ง€๋Š” cs๋ฅผ ์ฐพ์•„์„œ ๊ธธ์ด๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
- cs์˜ ๊ธธ์ด ์ค‘ ์ œ์ผ ๊ธด ๊ฒƒ์„ ์ฐพ์•„์„œ ๋ฆฌํ„ดํ•˜๋ฉด ๋œ๋‹ค.
SC:
- set(nums)์—์„œ O(n).
- ์œ„ set์—์„œ ๋ชจ๋“  ์•„์ดํ…œ์„ ๋Œ๋ฉด์„œ i-1์ด set ์•ˆ์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” i๋ฅผ ์ฐพ์•„์„œ ๋ฆฌ์ŠคํŠธ๋กœ ๋งŒ๋“ค๋•Œ O(n).
- ์ด O(n).
TC:
- set(nums)์—์„œ O(n).
- ์œ„ set์—์„œ ๋ชจ๋“  ์•„์ดํ…œ์„ ๋Œ๋ฉด์„œ i-1์ด set ์•ˆ์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” i๋ฅผ ์ฐพ๋Š” ๋ฐ์— O(n).
- ๊ฐ cs์˜ ์ œ์ผ ์•ž ์ˆซ์ž๋ถ€ํ„ฐ ์ด์–ด์ง€๋Š” ์ˆซ์ž๋“ค์ด set ์•ˆ์— ์žˆ๋Š”์ง€ ์ฒดํฌํ•˜๋Š” ๋ฐ์— ์ด O(n).
- ์ด O(n).
"""


class Solution:
def longestConsecutive(self, nums: List[int]) -> int:
s = set(nums) # TC:O(n), SC:O(n)
seq_start_candidate = [i for i in s if i - 1 not in s] # TC:O(n), SC:O(n)
sol = 0

# ์•„๋ž˜์˜ for๋ฌธ ๋‚ด์—์„œ๋Š” s์— ์†ํ•œ ์•„์ดํ…œ์— ํ•œ ๋ฒˆ์”ฉ ์ ‘๊ทผํ•œ๋‹ค. TC:O(n)
for i in seq_start_candidate:
seq_len = 1
while i + seq_len in s:
seq_len += 1
sol = max(seq_len, sol)
return sol
65 changes: 65 additions & 0 deletions maximum-product-subarray/haklee.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
"""TC: O(n), SC: O(1)
โ€ป ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ๋Œ€์ถฉ ๋ญ˜ ํ–ˆ๋Š”์ง€ ๊ฐ์„ ์žก์€ ๋‹ค์Œ์— ์•„๋ž˜์˜ ์•„์ด๋””์–ด์—์„œ p, n ๊ตฌ๊ฐ„์ด ๋‚˜์˜ค๋Š” ๋ถ€๋ถ„๋งŒ ๋ณด๋ฉด
์ข€ ๋” ๋น ๋ฅธ ์ดํ•ด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
์•„์ด๋””์–ด:
- ๊ณฑ์— 0์ด ์„ž์ด๋ฉด ์•„๋ฌด๋ฆฌ ๋งŽ์€ ์ˆ˜๋ฅผ ๊ณฑํ•ด๋„ ๊ฒฐ๊ณผ๋Š” 0์ด๋‹ค.
- 0์ด ๋“ฑ์žฅํ•˜์ง€ ์•Š๋Š” ์–ด๋–ค subarray๊ฐ€ ์ฃผ์–ด์กŒ๋‹ค๊ณ  ํ•˜์ž.
- ์—ฌ๊ธฐ์— ์Œ์ˆ˜๊ฐ€ ์ง์ˆ˜ ๋ฒˆ ๋“ฑ์žฅํ•˜๋ฉด ๋ชจ๋“  ์ˆซ์ž๋ฅผ ๊ณฑํ•œ ๊ฒƒ์ด ๊ฐ€์žฅ ํฐ ๊ณฑ์ด ๋œ๋‹ค.
- ์Œ์ˆ˜๊ฐ€ ํ™€์ˆ˜ ๋ฒˆ, ์ด r๋ฒˆ ๋“ฑ์žฅํ•œ๋‹ค๊ณ  ํ•ด๋ณด์ž. ์ด ๋ฐฐ์—ด์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์กฐํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.
- ์–‘์ˆ˜๋ฅผ p, ์Œ์ˆ˜๋ฅผ n์ด๋ผ๊ณ  ํ‘œํ˜„ํ•˜์ž.
- ์ด ๋ฐฐ์—ด์€ [p, ..., p, n, p, ... p, n, ..., n, p, ..., p] ๊ผด๋กœ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
์ด๋•Œ, n์€ ์ด r๋ฒˆ ๋“ฑ์žฅํ•˜๊ณ , n์€ p๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ(0๋ฒˆ๋„ ๊ฐ€๋Šฅ) ๋“ฑ์žฅํ•˜๋Š” ๋ฌถ์Œ ์‚ฌ์ด์— ์กด์žฌํ•œ๋‹ค.
- p๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ(0๋ฒˆ๋„ ๊ฐ€๋Šฅ) ๋“ฑ์žฅํ•˜๋Š” ๊ฒƒ์„ P๋ผ๊ณ  ๋ฌถ์–ด์„œ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
- [(P), n, (P), n, ..., n, (P), n, (P)]
- n์„ ์ง์ˆ˜ ๋ฒˆ ๊ณฑํ•ด์•ผ ์–‘์ˆ˜๊ฐ€ ๋‚˜์˜จ๋‹ค. ์—ฐ์†๋œ ๊ฐ’์„ ์ตœ๋Œ€ํ•œ ๋งŽ์ด ๊ณฑํ•˜๋ ค๊ณ  ํ•˜๋ฏ€๋กœ, ํ•œ์ชฝ ๋์—
๋“ฑ์žฅํ•˜๋Š” n์„ ๋บ€ ๋‚˜๋จธ์ง€ n๋“ค์„ ๊ณฑํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์€ ์ „๋žต์ด๋‹ค.
- ์œ„์˜ ์ „๋žต์— ๋”ฐ๋ผ ๋ฐฐ์—ด์˜ ์ˆซ์ž๋ฅผ ๊ณฑํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋‹ค์Œ ๋‘˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๊ฐ€์žฅ ํฐ ์ˆซ์ž๋‹ค.
- [(P), n, (P), n, ..., n, (P), n, (P)]
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
์ด ๊ตฌ๊ฐ„์˜ ์ˆซ์ž๋“ค์„ ๋ชจ๋‘ ๊ณฑํ•จ
- [(P), n, (P), n, ..., n, (P), n, (P)]
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
์ด ๊ตฌ๊ฐ„์˜ ์ˆซ์ž๋“ค์„ ๋ชจ๋‘ ๊ณฑํ•จ
- ์ฆ‰, ์•ž์—์„œ๋ถ€ํ„ฐ ์ˆซ์ž๋ฅผ ๊ณ„์† ๊ณฑํ•˜๋ฉด์„œ max๊ฐ’์„ ์ฐพ์€ ๊ฒƒ, ํ˜น์€ ๋’ค์—์„œ๋ถ€ํ„ฐ ์ˆซ์ž๋ฅผ ๊ณ„์†
๊ณฑํ•˜๋ฉด์„œ max๊ฐ’์„ ์ฐพ์€ ๊ฒƒ, ๋‘˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์œ„์˜ ๊ตฌ๊ฐ„์—์„œ์˜ ์ตœ๋Œ€ ๊ณฑ์…ˆ ๊ฐ’์ด ๋œ๋‹ค.
- ์šฐ๋ฆฌ์—๊ฒŒ ์ฃผ์–ด์ง„ ์ „์ฒด array๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค.
- 0์ด ๋“ฑ์žฅํ•˜์ง€ ์•Š๋Š” ๊ธธ์ด 1 ์ด์ƒ์˜ subarray๋ฅผ (S), 0์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๊ธธ์ด 0 ์ด์ƒ์˜ subarray๋ฅผ
(0)์ด๋ผ๊ณ  ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
- [(0), (S), (0), (S), ..., (S), (0), (S), (0)]
- ์ „์ฒด array์—์„œ ์ตœ๋Œ€ subarray ๊ณฑ์€ 0์ด๊ฑฐ๋‚˜, ํ˜น์€ ์œ„์˜ ๊ฐ S์—์„œ์˜ ์ตœ๋Œ€ ๊ณฑ๋“ค ์ค‘ ์ตœ๋Œ€ ๊ฐ’์ด๋‹ค.
- ์œ„์˜ ์•„์ด๋””์–ด๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋‹ค์Œ์˜ ๋ฐฉ์‹์œผ๋กœ ์ตœ๋Œ€ subarray์˜ ๊ณฑ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.
- nums์˜ ์•ž์—์„œ๋ถ€ํ„ฐ ์ˆซ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ๊ณฑํ•ด๊ฐ€๋ฉด์„œ ์ตœ๋Œ€ ๊ณฑ์„ ์ฐพ์Œ. ๋‹จ, ์ค‘๊ฐ„์— 0์ด ๋‚˜์™€์„œ ์ตœ๋Œ€ ๊ณฑ
๊ฐ’์ด 0์ด ๋˜์—ˆ์„ ๊ฒฝ์šฐ ์ด๋ฅผ ๋‹ค์‹œ 1๋กœ ๋ฐ”๊ฟ”์ค˜์„œ ์œ„์˜ ์•„์ด๋””์–ด๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ธํŒ….
- ๋˜‘๊ฐ™์€ ์ž‘์—…์„ nums์˜ ๋’ค์—์„œ๋ถ€ํ„ฐ ์ˆซ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ๊ณฑํ•ด๊ฐ€๋ฉด์„œ ์ง„ํ–‰ํ•จ.
SC:
- solution์„ ์ €์žฅํ•˜๋Š” ๋ฐ์— O(1).
- ๊ณฑ์…ˆ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ฐ์— O(1).
- ์ด O(1).
TC:
- ๋ฆฌ์ŠคํŠธ๋ฅผ ์•ž์—์„œ๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ณฑ/max ์—ฐ์‚ฐ. O(n).
- ๋ฆฌ์ŠคํŠธ๋ฅผ ๋’ค์—์„œ๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ณฑ/max ์—ฐ์‚ฐ. O(n).
- ์ด O(n).
"""


class Solution:
def maxProduct(self, nums: List[int]) -> int:
sol = nums[0]
p = 1
for i in nums:
if p == 0:
p = 1
p *= i
sol = max(p, sol)
p = 1
for i in reversed(nums):
if p == 0:
p = 1
p *= i
sol = max(p, sol)
return sol
26 changes: 26 additions & 0 deletions missing-number/haklee.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
"""TC: O(n), SC: O(n)
์•„์ด๋””์–ด:
- [0, ..., n]์—์„œ ํ•œ ์ˆซ์ž๋งŒ ๋น ์ ธ์žˆ๋Š” ์ƒํ™ฉ.
- [0, ..., n]์„ set์œผ๋กœ ๋งŒ๋“  ๋‹ค์Œ ํŠน์ • ์ˆซ์ž๊ฐ€ ์ด set์— ์žˆ๋Š”์ง€ ์ฒดํฌํ•˜๋ฉด ๋œ๋‹ค.
- ๊ทธ๋Ÿฐ๋ฐ ๊ทธ๋ ‡๊ฒŒ ๊ตฌํ˜„ํ•˜๋‚˜ ์œ„ set์—์„œ set(nums)๋ฅผ ๋นผ๊ณ  ๋‚จ์€ ์ˆซ์ž๋ฅผ ์ทจํ•˜๋‚˜ ์ตœ์•…์˜ ๊ฒฝ์šฐ
๊ฐ™์€ ์„ฑ๋Šฅ์ด ๋‚˜์˜ฌํ…Œ๋‹ˆ ๋” ์ฝ”๋“œ๊ฐ€ ์งง์•„์ง€๋„๋ก ํ›„์ž์˜ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•ด๋ณด์ž.
SC:
- [0, ..., n]์œผ๋กœ set์„ ๋งŒ๋“œ๋Š” ๋ฐ์— O(n).
- set(nums)์—์„œ O(n).
- ์ด O(n).
TC:
- [0, ..., n]์œผ๋กœ set์„ ๋งŒ๋“œ๋Š” ๋ฐ์— O(n).
- set(nums)์—์„œ O(n).
- set์— difference(์•„๋ž˜ ์ฝ”๋“œ์—์„œ๋Š” `-`)๋ฅผ ํ•˜๋Š” ๋ฐ์— O(n).
- set์— pop์„ ํ•˜๋Š” ๋ฐ์— O(1).
- ์ด O(n).
"""


class Solution:
def missingNumber(self, nums: List[int]) -> int:
return (set(range(len(nums) + 1)) - set(nums)).pop()
24 changes: 24 additions & 0 deletions valid-palindrome/haklee.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
"""TC: O(n), SC: O(n)
์•„์ด๋””์–ด:
๋ฌธ์ž์—ด์„ ๋ณด๊ณ  ์ˆซ์ž ํ˜น์€ ์•ŒํŒŒ๋ฒณ์ธ ๋ฌธ์ž๋งŒ ๋ฝ‘์•„์„œ ์ƒˆ ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค๊ณ , ๋Œ€๋ฌธ์ž๋Š” ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พผ๋‹ค.
๊ตฌํ˜„์ด ์–ด๋ ต์ง€๋Š” ์•Š์ง€๋งŒ ๊ท€์ฐฎ์„ ์ˆ˜ ์žˆ๋Š”๋ฐ, python์—๋Š” ์œ„ ๊ณผ์ •์„ `isalnum()`, `lower()` ํ•จ์ˆ˜๋กœ
์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ์ƒˆ๋กœ ๋งŒ๋“  ๋ฌธ์ž์—ด์„ ๋’ค์ง‘์–ด์„œ ์›๋ž˜ ๋ฌธ์ž์—ด๊ณผ ๊ฐ™์€์ง€ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค.
SC:
- ๋ฌธ์ž์—ด์„ ํ•„์š”ํ•œ ๋ฌธ์ž๋งŒ ๋‚จ๊ธฐ๋Š” ๊ณผ์ •์—์„œ O(n).
- ๋ฌธ์ž์—ด์„ ๋’ค์ง‘์–ด์„œ ์ €์žฅ. O(n).
- ์ฆ‰, O(n).
TC:
- ๋ฌธ์ž์—ด์„ ํ•„์š”ํ•œ ๋ฌธ์ž๋งŒ ๋‚จ๊ธฐ๋Š” ๊ณผ์ •์—์„œ O(n).
- ๋ฌธ์ž์—ด ๋’ค์ง‘๊ธฐ. O(n).
- ์ƒˆ๋กœ ๋งŒ๋“  ๋ฌธ์ž์—ด๊ณผ ๋’ค์ง‘์€ ๋ฌธ์ž์—ด palindrome ์ฒดํฌ. O(n).
- ์ฆ‰, O(n).
"""


class Solution:
def isPalindrome(self, s: str) -> bool:
return (l := [c.lower() for c in s if c.isalnum()]) == l[::-1]
61 changes: 61 additions & 0 deletions word-search/haklee.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
"""TC: O(m * n * (4^l)), SC: O(m * n)
์•„์ด๋””์–ด:
- ๊ฒฉ์žํŒ์˜ ๊ฐ ์นธ์„ ๋…ธ๋“œ๋กœ, ์ด์›ƒํ•œ ์นธ๋“ค์˜ ๊ด€๊ณ„๋ฅผ ์—ฃ์ง€๋กœ ์ƒ๊ฐํ•˜๋ฉด ๊ฒฉ์žํŒ์„ ๊ทธ๋ž˜ํ”„๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
- ์œ„ ๊ทธ๋ž˜ํ”„์—์„œ dfs๋ฅผ ๋Œ๋ฆฐ๋‹ค.
- ์ด๋•Œ, ๊ธฐ์กด์— ๋ฐฉ๋ฌธํ–ˆ๋˜ ๋…ธ๋“œ๋ฅผ ์žฌ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š๋„๋ก visited๋ผ๋Š” 2์ฐจ์› ๋ฐฐ์—ด์„ ๊ฐ™์ด ๊ด€๋ฆฌํ•ด์ฃผ์ž.
SC:
- visited ๋ฐฐ์—ด์—์„œ O(m * n)
- ํ˜ธ์ถœ ์Šคํƒ์€ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๋‹จ์–ด์˜ ๊ธธ์ด l, ์ฆ‰, O(l).
- ๊ทธ๋Ÿฐ๋ฐ l์ด ๊ฒฉ์ž ์ „์ฒด ์นธ ๊ฐœ์ˆ˜๋ณด๋‹ค ํด ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋ฌด์‹œ ๊ฐ€๋Šฅ.
- ์ด O(m * n).
TC:
- visited ๋ฐฐ์—ด ์„ธํŒ…, O(m * n)
- dfs, ์ตœ์•…์˜ ๊ฒฝ์šฐ
- ๋‹จ์–ด๋ฅผ ์ฐพ๋Š” ์‹œ๋„๋ฅผ ํ•˜๋Š” ๋ฐ์— 4^l ๋งŒํผ์˜ ํƒ์ƒ‰์ด ๊ฑธ๋ฆผ
- ๊ทธ๋Ÿฐ๋ฐ ๋‹ต์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์‹œ์ž‘ ์นธ์„ ํ•˜ํ•„ ์ œ์ผ ๋งˆ์ง€๋ง‰์œผ๋กœ ํƒ์ƒ‰ํ•œ ๊ฒฝ์šฐ ์œ„์˜ ์‹œ๋„๋ฅผ m*n๋ฒˆ ํ•ด์•ผํ•จ
- ์ฆ‰, O(m * n * (4^l))
- ์ด O(m * n * (4^l))
"""


class Solution:
def exist(self, board: List[List[str]], word: str) -> bool:
r, c = len(board), len(board[0])
visited = [[False for _ in range(c)] for _ in range(r)]

def search(ind: int, pos: tuple[int, int]) -> bool:
if ind == len(word):
# ์ฐพ๋Š” ๋ฐ์— ์„ฑ๊ณต.
return True

if not (0 <= pos[0] < r and 0 <= pos[1] < c):
# ๊ฒฉ์žํŒ์„ ๋ฒ—์–ด๋‚จ.
return False

if visited[pos[0]][pos[1]]:
# ์ด๋ฏธ ๋ฐฉ๋ฌธํ•จ.
return False

if word[ind] != board[pos[0]][pos[1]]:
# ๊ธ€์ž๊ฐ€ ์•ˆ ๋งž์Œ.
return False

visited[pos[0]][pos[1]] = True # ๋ฐฉ๋ฌธํ•œ ๊ฒƒ์œผ๋กœ ์ฒดํฌ

found = (
search(ind + 1, (pos[0] - 1, pos[1])) # ์ƒ
or search(ind + 1, (pos[0] + 1, pos[1])) # ํ•˜
or search(ind + 1, (pos[0], pos[1] - 1)) # ์ขŒ
or search(ind + 1, (pos[0], pos[1] + 1)) # ์šฐ
) # ๋‹ค์Œ ๊ธ€์ž ์ฐพ๊ธฐ

# ์•ž์—์„œ ๋ชป ์ฐพ์•˜์„ ๊ฒฝ์šฐ์—๋Š” ๋ฐฉ๋ฌธ์„ ํ•ด์ œํ•ด์•ผ ํ•œ๋‹ค.
# ์ฐพ์€ ๊ฒฝ์šฐ์—๋Š” ๋ฐฉ๋ฌธ์„ ํ•ด์ œํ•˜๋“  ๋ง๋“  ์ƒ๊ด€ ์—†์Œ.
visited[pos[0]][pos[1]] = False

return found

return any(search(0, (i, j)) for i in range(r) for j in range(c))

0 comments on commit b37ae9b

Please sign in to comment.