[yuseok89] WEEK 04 Solutions#2739
Conversation
๐ yuseok89 ๋์ ํ์ต ํํฉ์ด๋ฒ ์ฃผ ์ ์ถ ๋ฌธ์
๋์ ํ์ต ์์ฝ
๋ฌธ์ ํ์ด ํํฉ
๐ค ์ด ๋๊ธ์ GitHub App์ ํตํด ์๋์ผ๋ก ์์ฑ๋์์ต๋๋ค. ๐ข API ์ฌ์ฉ๋ (gpt-5-nano)
|
There was a problem hiding this comment.
์ด๊ฑฐ 2๊ฐ ๋น๊ตํ๋ ๋ถ๋ถ ๋๋๊ณ ๋ฆฌ์คํธ ๋๊ฐ์ค์ ํ๊ฐ ์ํ ๋ค ๋๋ ์ํ์์๋ ๋๋จธ์ง ๋จ์ ๋ฆฌ์คํธ๋ ๊ทธ๋ฅ ๋ค์ ํต์งธ๋ก ๋ถํ์ฃผ๋๊ฒ ๋ ์ข๋๋ผ๊ตฌ์!
๊ทธ๋๊น while ๋ง๊ตฌ ๋จ์ผ if๋ฌธ์ผ๋ก ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํด์ ์ด๊ฒ ํจ์ฌ ๊น๋ํ๊ณ ์ข์๊ฒ ๊ฐ์์ด์
ํ์ด์ฌ์ or๊ฐ ์ด๋ป๊ฒ ๋จ์ถํ๊ฐ๋ฅผ ํ๋์ง ๊ณ ๋ คํ๋ฉด ๋์ฑ ์ค์ผ์๋ ์๊ตฌ์!
There was a problem hiding this comment.
์ ๋ ์ฝ์ธ์ด ์์๊ฐ๋ง ์์ด์ DP๋ง ํ์๋๋ฐ BFS๋ก ํด๋ ์ถฉ๋ถํ ๊ฐ๋ฅํ๊ฒ ๋ค์!
There was a problem hiding this comment.
์ ๋ while loop ์์ ๋ณต์กํ ์ฐ์ฐ ๋ค์ด๊ฐ๋๊ฑฐ ๋ณ๋ก๋ผ ์ต๋ํ ๊ฐ๋จํ๊ฒ ํ๋๋ฐ, ์ด๋ ๊ฒ ํ์๋ฉด ์ผ๋ฆฌ ๋ฆฌํด์ด ๊ฐ๋ฅํด์ ์ข๋ค์!
There was a problem hiding this comment.
์ด๊ฑฐ ํ์๋ ๋ต์์ 3000ms ๊ฐ๋ ๊ฑธ๋ฆฌ๋๋ฐ
๋ฐฑํธ๋ํน์ ์ ์งํ ์ํ์์
- ์ด์ฐจํผ ๋ต์ด ์๋๋๊ฒ ๋ฏธ๋ฆฌ ์ณ๋ด๊ธฐ
- ์ข ๋ ํจ์จ์ ์ผ๋ก ํ์ํ๊ธฐ
์ด ๋๊ฐ์ง๋ง ์ถ๊ฐํด๋ leetcode ์คํ์๋์ 0ms๊น์ง ๋๋ฌํ ์ ์์ด์!
๊ฝค๋ ํฅ๋ฏธ๋กญ๋๋ผ๊ตฌ์, ์ ๋ ํ๋ํ๋ ์ง์ ์ถ๊ฐํด๊ฐ๋ฉด์ ์ฑ๋ฅ ํ๋ ํ์๋ค์
There was a problem hiding this comment.
์์ฃผ ๊ฐ์ธ์ ์ธ ์๊ฐ์ธ๋ฐ, rec์ ์ฐ์ง ์๊ณ maxDepth ์์ฒด๋ฅผ ์ฌ๊ท๋ก ํ๋ฉด ์ข ์ฝ๋๊ฐ ๊ฐ๋จํด์ง์ง ์์๊น์?
There was a problem hiding this comment.
๋ฐฑํธ๋ํน์์ ํ์๊ณต๊ฐ์ ํ๋ฃจ๋ํ๋๊ฑด ์ข์ ๊ณต๋ถ๊ฐ ๋ ๊ฒ ๊ฐ์ต๋๋ค!
There was a problem hiding this comment.
๋ง์ต๋๋ค! ๋น๋ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ง์๋๋ฐ, ํด๋น ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํ๋ฉด ์กฐ๊ธ์ด๋ผ๋ ๋นจ๋ฆฌ ํ์ ์์๊น์๋ง ์ด์ ์ ๋ง์ถ ์ฝ๋์ด๊ธด ํฉ๋๋ค!
parkhojeong
left a comment
There was a problem hiding this comment.
์๊ณ ํ์ จ์ต๋๋ค.
| ret = ListNode() | ||
| cur = ret |
There was a problem hiding this comment.
ret์ ๋ฌด์จ ์ฝ์์ผ๊น์?
There was a problem hiding this comment.
return value ์ฝ์๋ก ์ผ๋๋ฐ,
๋ค์์ ์ข ๋ ๊ฐ๋
์ฑ ์๊ฒ ์์ฑํด๋ณด๊ฒ ์ต๋๋ค.
| board_counter = Counter(board[r][c] for r in range(n) for c in range(m)) | ||
| word_counter = Counter(word) | ||
|
|
||
| for c, cnt in word_counter.items(): | ||
| if board_counter[c] < cnt: | ||
| return False |
There was a problem hiding this comment.
๋น๋ ์ด์ฉํด์ ์ต์ ํํ์ ๊ฑฐ ์ข์ ๊ฑฐ ๊ฐ์ต๋๋ค. ์ด๊ฑธ rec ํจ์์์๋ ์ฌ์ฉํ๋ฉด ์ข ๋ ์ต์ ํ๊ฐ ๊ฐ๋ฅํ ๊ฑฐ ๊ฐ๋ค์.
There was a problem hiding this comment.
rec ํจ์์์ ์ด๋ป๊ฒ ํ์ฉํ ์ ์์๊น์?
There was a problem hiding this comment.
์ ๊ฐ ์๋ชป ์๊ฐํ๋ค์. ์ด๊ธฐ์ ํ ๋ฒ ์ฌ์ฉํ๋ฉด ์ดํ ๊ณผ์ ์์ ๋ถํ์ํ๋ค์!
| board[row][col] = None | ||
|
|
||
| ret = rec(row + 1, col, idx + 1) or rec(row - 1, col, idx + 1) or rec(row, col + 1, idx + 1) or rec(row, col - 1, idx + 1) | ||
|
|
||
| board[row][col] = word[idx] |
There was a problem hiding this comment.
None์ผ๋ก ํ ๋นํ๋ค๊ฐ word[idx]๋ก ๋ณต์ํ๋๊ฑฐ ์ข์ ๊ฑฐ ๊ฐ์ต๋๋ค!
There was a problem hiding this comment.
bfs ๋ฐฉ์์ผ๋ก ํ์ด์ฃผ์ จ๋ค์. dict ์ด์ฉํด์ ํ์ํ ๊ณต๊ฐ๋ง ์ฌ์ฉํ๋ ๊ฒ๋ ์ ๊ฒฝ์ฐ์ ์ ํธ์ ๊ฑฐ ๊ฐ๋ค์.
Co-authored-by: Hojeong Park <parkhj062@gmail.com>
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Breadth-First Search, Hash Map / Hash Set
- ์ค๋ช : ์ฝ์ธ ํฉ์ ๋ชฉํ ๊ธ์ก์ผ๋ก ๋๋ฌํ๋ ์ต๋จ ๊ฒฝ๋ก๋ฅผ BFS๋ก ํ์ํ๊ณ , ๋ฐฉ๋ฌธ ์ฌ๋ถ๋ฅผ ํด์ ๋งต์ผ๋ก ๊ด๋ฆฌํ์ฌ ์ค๋ณต ๋ฐฉ๋ฌธ์ ํผํฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ์ ์ ๋ถ์ | ์ค์ ๋ถ์ | ๊ฒฐ๊ณผ | |
|---|---|---|---|
| Time | O(amount * len(coins)) | O(amount * len(coins)) | โ |
| Space | O(amount) | O(amount) | โ |
ํผ๋๋ฐฑ: ํ๋ฅผ ์ด์ฉํด ํ์ฌ ํฌํจ๋ ํฉ์ ๋๋ฌํ ์ต์ ๋์ ์๋ฅผ ์ ๋ฐ์ดํธํ๋ค. ๊ฐ ํฉ์ ํ ๋ฒ๋ง ๋ฐฉ๋ฌธํ๋ฏ๋ก ์ ์ฒด ์๊ฐ์ ๊ธ์ก ๋ฒ์์ ๋์ ์ข ๋ฅ์ ๋น๋กํ๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Binary Search
- ์ค๋ช : ๋กํ ์ด์ ๋ ์ ๋ ฌ ๋ฐฐ์ด์์ ์ต์๊ฐ์ ์ด๋ถ ํ์์ผ๋ก ์ฐพ๋ ๋ฌธ์ ๋ก, ์ค๊ฐ๊ฐ๊ณผ ์ ๋ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ด์ฉํด ํ์ ๊ตฌ๊ฐ์ ์ ๋ฐ์ผ๋ก ์ถ์ํ๋ค. ์กฐ๊ฑด ๋ถ๊ธฐ์ ๋ฐ๋ผ ์ต์๊ฐ ์์น๋ฅผ ํ๋จํ๊ฑฐ๋ ๊ตฌ๊ฐ์ ์ขํ ๋ต์ ์ป๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ์ ์ ๋ถ์ | ์ค์ ๋ถ์ | ๊ฒฐ๊ณผ | |
|---|---|---|---|
| Time | O(logN) | O(log n) | โ |
| Space | O(1) | O(1) | โ |
ํผ๋๋ฐฑ: ๋ฒ์๋ฅผ ๋ฐ์ผ๋ก ๋๋๋ฉฐ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ต์๊ฐ์ ์์น๋ฅผ ์ขํ๊ฐ๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Depth-First Search, Binary Search
- ์ค๋ช : ํด๋น ์ฝ๋๋ ์ฌ๊ท์ ์ธ ํธ๋ฆฌ ํ์์ผ๋ก ๊ฐ ๋ ธ๋์ ์ข์ฐ ์์ ๊น์ด๋ฅผ ๋น๊ตํ์ฌ ์ต๋ ๊น์ด๋ฅผ ๊ตฌํ๋ฏ๋ก DFS ํจํด์ ์ํฉ๋๋ค. ํธ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ์ํํ๋ฉฐ ์ฐ๊ฒฐ๋ ๋ ธ๋ ๋ฐฉ๋ฌธ์ ๋ฐ๋ณตํ๋ ๋ฐฉ์์ ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ์ ์ ๋ถ์ | ์ค์ ๋ถ์ | ๊ฒฐ๊ณผ | |
|---|---|---|---|
| Time | O(N) | O(n) | โ |
| Space | O(H) | O(h) | โ |
ํผ๋๋ฐฑ: ๊ฐ ๋ ธ๋๋ฅผ ํ ๋ฒ์ฉ ๋ฐฉ๋ฌธํ๊ณ ํธ์ถ ์คํ์ ๊น์ด๋ ํธ๋ฆฌ์ ๋์ด์ ๋น๋กํ๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Two Pointers, Merge
- ์ค๋ช : ๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ๋ณํฉํ๊ธฐ ์ํด ๋ ํฌ์ธํฐ(list1, list2)๋ก ์์๋ฅผ ์ฐจ๋ก๋ก ๋น๊ตํ๋ฉฐ ์๋ก์ด ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด๊ฐ๋ ํจํด์ ๋๋ค. ์๊ฐ ๋ณต์ก๋ O(N+M), ์ถ๊ฐ ๊ณต๊ฐ์ ์์๋ก ๊ตฌํ๋ฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ์ ์ ๋ถ์ | ์ค์ ๋ถ์ | ๊ฒฐ๊ณผ | |
|---|---|---|---|
| Time | O(N+M) | O(n + m) | โ |
| Space | O(1) | O(1) | โ |
ํผ๋๋ฐฑ: ๋ ๋ฆฌ์คํธ๋ฅผ ๋์์ ์ํํ๋ฉฐ ๋ ์์ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Depth-First Search, Backtracking
- ์ค๋ช : ์ฝ๋๋ DFS๋ฅผ ์ด์ฉํด 2D ๋ณด๋์์ ๋จ์ด๋ฅผ ์์๋๋ก ํ์ํ๋ฉฐ, ๋ฐฉ๋ฌธํ ์ ์ ํ์ ํ ๋๋๋ ค ๋๋ ๋ฐฑํธ๋ํน ๋ฐฉ์์ผ๋ก ๋ถ๋ถํด๋ฅผ ์ฐพ๋๋ค. ์ฌ์ ์กฐ๊ฑด ๊ฒ์ฌ์ 4๋ฐฉํฅ ํ์์ด ํต์ฌ ํฌ์ธํธ์ด๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ์ ์ ๋ถ์ | ์ค์ ๋ถ์ | ๊ฒฐ๊ณผ | |
|---|---|---|---|
| Time | O(NM4^L) | O(ํด๋น ๋ฌธ์์ด์ ํ์ ๊ณต๊ฐ) | โ |
| Space | O(L) | O(n * m) | โ |
ํผ๋๋ฐฑ: ์ ๋ ฅ ๊ธ์ ๋น๋ ๊ฒ์ฌ๋ฅผ ๋จผ์ ์ํํด ์คํจ๋ฅผ ์กฐ๊ธฐ์ ํธ๋ค๋งํ๋ค. DFS๋ก ์ธ์ ์นธ์ ํ์ํ๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.

๋ต์ ์ ์ถ ๋ฌธ์
์์ฑ์ ์ฒดํฌ ๋ฆฌ์คํธ
In Review๋ก ์ค์ ํด์ฃผ์ธ์.๊ฒํ ์ ์ฒดํฌ ๋ฆฌ์คํธ
Important
๋ณธ์ธ ๋ต์ ์ ์ถ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ๋ถ PR ํ๋ ์ด์์ ๋ฐ๋์ ๊ฒํ ๋ฅผ ํด์ฃผ์ ์ผ ํฉ๋๋ค!