[tigermint] WEEK 04 Solutions#2748
Conversation
๐ tigermint ๋์ ํ์ต ํํฉ์ด๋ฒ ์ฃผ ์ ์ถ ๋ฌธ์
๋์ ํ์ต ์์ฝ
๋ฌธ์ ํ์ด ํํฉ
๐ค ์ด ๋๊ธ์ GitHub App์ ํตํด ์๋์ผ๋ก ์์ฑ๋์์ต๋๋ค. ๐ข API ์ฌ์ฉ๋ (gpt-5-nano)
|
parkhojeong
left a comment
There was a problem hiding this comment.
์๊ณ ํ์ จ์ต๋๋ค.
| val visited = Array(rows) { BooleanArray(cols) } | ||
|
|
There was a problem hiding this comment.
board๋ฅผ ํ์ฉํด ๋ฐฉ๋ฌธํ ์ ์ ๋งํนํด๋๋ ์์ผ๋ก ํ๋ฉด visited ์ ์ธ ์์ด๋ ๊ฐ๋ฅํ๋ ์ด๋ ๊ฒ ํ์ด๋ณด์๋ ๊ฒ๋ ์ถ์ฒ๋๋ฆฝ๋๋ค.
| var flag = false | ||
|
|
||
| fun dfs(start: Pair<Int, Int>, index: Int) { | ||
| if (flag) return | ||
| if (index == word.length - 1) { | ||
| flag = true | ||
| return |
There was a problem hiding this comment.
์ ์ญ๋ณ์ flag ๋์ dfs ํจ์์ ๋ฐํ ๊ฐ์ boolean์ผ๋ก ํ์ฉํด๋ณด์ ๋ ์ข์ ๊ฑฐ ๊ฐ์ต๋๋ค.
| if (word.length == 1) return starts.isNotEmpty() | ||
|
|
There was a problem hiding this comment.
์ค์ ๋ก ๋๋ ค๋ณด๋ runtime ์ด 50% ์ ๋ ๋์ค๋๋ฐ์. board, word ์ธํ์ ๊ฐ์ง๊ณ ๋ฏธ๋ฆฌ ๋ฆฌํดํ ์ ์๋ ์ผ์ด์ค๋ ๊ณ ๋ คํด์ ์ต์ ํ ํด๋ณด์๋ฉด ์ข์ ๊ฑฐ ๊ฐ์ต๋๋ค.
| while (left < right) { | ||
| val mid = (left + right) / 2 | ||
|
|
||
| when { |
There was a problem hiding this comment.
์์ฑํ์ ๋ก์ง์ ์์ด๋์ด์์ ์ค๊ฐ์ ํด๋ต์ธ ์ผ์ด์ค๋ฅผ ์ ์ ์๋๋ฐ์. ์ด ๋๋ ๋ ์ด์ ์งํํ ํ์๊ฐ ์์ด์ ์ต์ ํ ํด๋ณด์ ๋ ์ข์ ๊ฑฐ ๊ฐ์ต๋๋ค.
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Dynamic Programming
- ์ค๋ช : ๋์ ๊ตํ ๋ฌธ์ ๋ฅผ ์ต์๊ฐ ๊ณ์ฐ์ผ๋ก ํด๊ฒฐํ๋ ์ ํ์ ์ธ DP ๋ฌธ์ ์ ๋๋ค. ๋ถ๋ถํด๋ฅผ ์ฌํ์ฉํด ๊ธ์ก i๋ฅผ ๋ง๋๋ ์ต์ ๋์ ์๋ฅผ ๋์ ์ ์ผ๋ก ๊ตฌํฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(amount * k) |
| Space | O(amount) |
ํผ๋๋ฐฑ: ์ธ๋ถ ๋ฐ๋ณต์ผ๋ก 1..amount๊น์ง ๊ฐ ๊ธ์ก์ ๋ํด ๋ชจ๋ ๋์ ์ ์๋ํ๋ฏ๋ก ์๊ฐ ๋ณต์ก๋๋ amount์ ๋์ ์์ ๊ณฑ์ ๋น๋กํ๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ ์ผ๋ฐ์ ์ธ ํ์ด๋ก ์ ์ ํ๋, amount๊ฐ ํฐ ๊ฒฝ์ฐ๋ฅผ ๋๋นํด ์ด๊ธฐ dp ๋ฐฐ์ด ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ์ถ๊ฐ ์ต์ ํ๋, BFS ๊ธฐ๋ฐ ํ์ด๋ฅผ ๊ณ ๋ คํ ์ ์๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Binary Search
- ์ค๋ช : ๋ฐฐ์ด์ ์ค๊ฐ ์ธ๋ฑ์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ ๊ตฌ๊ฐ์ ๋ฐ์ผ๋ก ์ค์ฌ๊ฐ๋ฉฐ ์ต์๊ฐ์ ์์น๋ฅผ ์ฐพ๋ ์ด๋ถ ํ์ ํจํด์ ๋๋ค. ์ค๊ฐ๊ฐ๊ณผ ๊ฒฝ๊ณ๊ฐ ๋น๊ต๋ฅผ ํตํด ํ์ ๋ฒ์๋ฅผ ์ขํ๊ฐ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(log n) |
| Space | O(1) |
ํผ๋๋ฐฑ: ์ด์ง ํ์์ผ๋ก ์ผ์ชฝ/์ค๋ฅธ์ชฝ์ ์ค๊ฐ ๋น๊ต๋ฅผ ํตํด ์ต์๊ฐ ์์น๋ฅผ ์ขํ ๋๊ฐ๋ค.
๊ฐ์ ์ ์: ์ฝ๋๊ฐ ๊ฐ๊ฒฐํด ๋ณด์ด๋, mid์ right ๋น๊ต ์กฐ๊ฑด์ ๋ช ํํ ์ฃผ์์ผ๋ก ๊ตฌ๋ถํ๋ฉด ๊ฐ๋ ์ฑ์ ๋์ผ ์ ์๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Depth-First Search, Binary Search
- ์ค๋ช : ํธ๋ฆฌ์ ๋ชจ๋ ๋ ธ๋๋ฅผ DFS๋ก ํ์ํ๋ฉด์ ๊น์ด๋ฅผ ๋์ ํ๊ณ , ๋ฆฌํ์์ ์ต๋ ๊น์ด๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ตฌ์กฐ๋ก ๊ตฌํ๋์ด ์์ต๋๋ค. ํธ๋ฆฌ ์ํ์ DFS ํจํด์ด ๊ฐ์ฅ ์ ๋ง์ต๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(h) |
ํผ๋๋ฐฑ: ๋ฃจํธ์์ ๋ชจ๋ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๋ฉฐ, ์ฌ๊ท ์คํ์ ๊น์ด๊ฐ ํธ๋ฆฌ์ ๋์ด(h) ๋งํผ ์ฌ์ฉ๋๋ค.
๊ฐ์ ์ ์: ์ฌ๊ท ๋์ ๋ช ์์ ์คํ์ ์ฌ์ฉํ ๊ตฌํ์ผ๋ก ์คํ ๊น์ด ํ๊ณ ๋ฌธ์ ๋ฅผ ํผํ ์ ์๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Two Pointers, Linked List
- ์ค๋ช : ๋ ์ ๋ ฌ ๋ฆฌ์คํธ๋ฅผ ๋ณํฉํ๊ธฐ ์ํด ํฌ์ธํฐ ๋ ๊ฐ(l1, l2)์ ํ๋์ ๊ผฌ๋ฆฌ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํด ์ํํ๋ฉฐ ์์ ๊ฐ์ ๋ถ์ฌ๋๊ฐ๋ ํจํด์ผ๋ก, ๋ฆฌ์คํธ ๋ ธ๋ ์ฐ๊ฒฐ์ ์ง์ ์์ ํฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n + m) |
| Space | O(1) |
ํผ๋๋ฐฑ: ์๋ก์ด ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด ์ฐ๊ฒฐํด ๋๊ฐ๋ฉฐ, ๋ ํฌ์ธํฐ๋ฅผ ์ด์ฉํด ์ ํ ์๊ฐ์ ๋ณํฉํ๋ค.
๊ฐ์ ์ ์: ๋ฆฌ์คํธ ๋ ธ๋ ์ฌํ์ฉ์ผ๋ก ๋ถํ์ํ ์ ๋ ธ๋ ์์ฑ ์์ด ๊ตฌํ ๊ฐ๋ฅํ๋ฉด ๊ณต๊ฐ์ ๋ ๋ฎ์ถ ์ ์๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Backtracking, Depth-First Search
- ์ค๋ช : ๋จ์ด์ ๊ฒฝ๋ก๋ฅผ ํ์ํ๋ฉฐ ๋ฐฉ๋ฌธ ์ฌ๋ถ๋ฅผ ๊ด๋ฆฌํ๊ณ ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ์ฌ๊ท์ ์ผ๋ก ํ์ํ๋ ๋ฐฑํธ๋ํน ๊ธฐ๋ฒ์ด ํต์ฌ์ด๋ฉฐ, DFS๋ก ์ธ์ ์นธ์ ๋ฐ๋ผ ํ์ํ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(4^L) |
| Space | O(rows * cols) |
ํผ๋๋ฐฑ: ํ ๊ธ์์ฉ ๋ค ๋ฐฉํฅ์ผ๋ก DFS๋ฅผ ํ์ฅํ๊ณ ๋ฐฉ๋ฌธ ์ฌ๋ถ๋ฅผ ๊ด๋ฆฌํ์ฌ ๋ชจ๋ ์์ ์์น์์ ํ์ํ๋ค.
๊ฐ์ ์ ์: ๋ฐฑํธ๋ํน prune ์กฐ๊ฑด์ ๊ฐํํ๊ฑฐ๋, ๋ณด๋ ํฌ๊ธฐ๊ฐ ์ปค์ง ๋๋ DP/๋ฉ๋ชจ์ด์ ์ด์ ์ผ๋ก ์ค๋ณต ํ์์ ์ค์ผ ์ ์๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
๋ต์ ์ ์ถ ๋ฌธ์
์์ฑ์ ์ฒดํฌ ๋ฆฌ์คํธ
In Review๋ก ์ค์ ํด์ฃผ์ธ์.๊ฒํ ์ ์ฒดํฌ ๋ฆฌ์คํธ
Important
๋ณธ์ธ ๋ต์ ์ ์ถ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ๋ถ PR ํ๋ ์ด์์ ๋ฐ๋์ ๊ฒํ ๋ฅผ ํด์ฃผ์ ์ผ ํฉ๋๋ค!