[alphaorderly] WEEK 07 Solutions - #2793
Conversation
# Conflicts: # word-break/alphaorderly.py
๐ alphaorderly ๋์ ํ์ต ํํฉ์ด๋ฒ ์ฃผ ์ ์ถ ๋ฌธ์
๋์ ํ์ต ์์ฝ
๋ฌธ์ ํ์ด ํํฉ
๐ค ์ด ๋๊ธ์ GitHub App์ ํตํด ์๋์ผ๋ก ์์ฑ๋์์ต๋๋ค. ๐ข API ์ฌ์ฉ๋ (gpt-5-nano)
|
There was a problem hiding this comment.
2D DP์์ dp ๋ด์ฉ์ ์ถ๋ ฅํ๊ณ
๋๊ฐ์ ์ผ๋ก ๋ณด๋ฉด Pascal Triangle์ด ๋ง๋ค์ด์ง๋๋ค.
์ด๊ฒ๋๋ก Combination ์ฐ์ฐ์ผ๋ก ํ์
๋ ๋งจ ์๋ ์ฝ๋๋ฅผ ์ป์์ ์์ผ์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Sliding Window, Hash Map / Hash Set
- ์ค๋ช : ๋ ํฌ์ธํฐ(left, right)๋ก ์ฐ์ ๋ถ๋ถ ๋ฌธ์์ด์ ์ฐฝ/window๋ก ํ์ฅ ์ถ์ํ๋ฉฐ ์๋ก ๋ค๋ฅธ ๋ฌธ์๋ง ๋จ๋๋ก ์ค๋ณต ์ฌ๋ถ๋ฅผ ํด์ ๋งต์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐฉ์์ด๋ค. ์ด๋ ๊ธธ์ด๊ฐ ์ต๋๋ก ๋๋ ๋ชจ๋ ๊ณ ์ ๋ถ๋ถ ๋ฌธ์์ด์ ์ฐพ๋ ์ผ๋ฐ์ ์ธ Sliding Window ํจํด์ ํด๋นํ๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(n) |
ํผ๋๋ฐฑ: ์ฌ๋ผ์ด๋ฉ ์๋์ฐ์ ํด์๋งต(๋์ ๋๋ฆฌ) ํ์ฉ์ผ๋ก ๊ฐ ๋ฌธ์ ๋ฑ์ฅ ์ฌ๋ถ๋ฅผ ๊ด๋ฆฌํ๋ค. right ์ฆ๊ฐ์ ๋ฐ๋ผ ์ค๋ณต์ด ์๊ธฐ๋ฉด left๋ฅผ ์ด๋์ํค๋ฉฐ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Depth-First Search, Breadth-First Search, Hash Map / Hash Set
- ์ค๋ช : ์ฝ๋๋ BFS์ DFS ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ์ฌ์ ํ์ํ๋ฉฐ, ๋ฐฉ๋ฌธ ์ฌ๋ถ๋ฅผ ํ์ํ๊ธฐ ์ํด ๊ฒฉ์ ๋ฐ์ดํฐ๋ฅผ '#''๋ก ๋ฐ๊ฟ๋๋ค. ๋ ๊ตฌํ ๋ชจ๋ ์ธ์ ํ ๋ ์ ํ์ํ๊ณ ์ฌ์ ์๋ฅผ ์ฆ๊ฐ์ํค๋ ํจํด์ ๋ณด์ด๋ฉฐ, ๋ฐฉ๋ฌธ ๊ด๋ฆฌ์ ์ถ๊ฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ ์์ ํด์ ๋งต/์ธํธ์ ์ง์ ์ฌ์ฉ์ ๋ณด์กฐ์ ์ผ๋ก ํ๋จ๋ฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
โน๏ธ ์ด ํ์ผ์๋ 2๊ฐ์ง ํ์ด๊ฐ ํฌํจ๋์ด ์์ด ๊ฐ๊ฐ ๋ถ์ํฉ๋๋ค.
ํ์ด 1: Solution.numIslands โ Time: O(m * n) / Space: O(m * n)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(m * n) |
| Space | O(m * n) |
ํผ๋๋ฐฑ: ๋ ๊ฐ์ง ๊ตฌํ์ด ์ ์๋์ด ์์ผ๋ฉฐ ๋ชจ๋ ํ์์ผ๋ก ๋ชจ๋ ์ก์ง('1')๋ฅผ ๋ฐฉ๋ฌธํ๋ค. ๋ฐฉ๋ฌธ ์ฌ๋ถ๋ฅผ ํ์ํ๊ธฐ ์ํด grid๋ฅผ ๋ณํํ์ฌ ์ถ๊ฐ ๊ณต๊ฐ์ ์ฌ์ฉํ์ง ์๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 2: Solution.numIslands โ Time: O(m * n) / Space: O(m * n)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(m * n) |
| Space | O(m * n) |
ํผ๋๋ฐฑ: ์ฌ๊ท๋ฅผ ์ด์ฉํ DFS๋ก ๋ชจ๋ ์ฐ๊ฒฐ๋ ์ก์ง๋ฅผ ํ์ํ๋ค. ์คํ์ ์ฌ์ฉํ๋ ๊ตฌํ๊ณผ ๋์ผํ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Two Pointers, Linked List
- ์ค๋ช : ํค๋์ ํ๋ฆฌ๋ธ ํฌ์ธํฐ๋ฅผ ์ด์ฉํด linked list๋ฅผ ์ญ์์ผ๋ก ์ํํ๋ฉฐ ๋ ธ๋ ์ฐ๊ฒฐ์ ์ฌ์ค์ ํ๋ ์ ํ์ ์ธ ํฌ ํฌ์ธํฐ ๊ธฐ๋ฒ. ๊ณต๊ฐ ๋ณต์ก๋ O(1), ๋ฐ๋ณต ๊ตฌ์กฐ๋ก ๋ฆฌ์คํธ๋ฅผ ํ ๋ฒ ์ํํ๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(1) |
ํผ๋๋ฐฑ: ๋จ์ผ ํฌ์ธํฐ๋ฅผ ํ์ฉํด ์ ๋ ธ๋์ ํ์ฌ ๋ ธ๋์ ์ฐ๊ฒฐ์ ์ญ์ ํ๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Dynamic Programming, Greedy, Hash Map / Hash Set
- ์ค๋ช : ์ด ์ฝ๋๋ ํ/์ด์ ํ๋๊ทธ๋ฅผ ์ฒซ ํ/์ด์ ์์ ์ ์ฅ์๋ก ํ์ฉํ๋ ๋ฐฉ์์ผ๋ก ์ ๋ก๋ฅผ ํ์ํ๋ ํจํด์ด๋ค. ๊ณต๊ฐ์ ์ถ๊ฐ๋ก ์ฌ์ฉํ์ง ์๊ณ ์๋ ๋ฐฐ์ด์ ํ/์ด์ ์ด์ฉํด ์กฐ๊ฑด์ ์ ํํ๋ฏ๋ก ์ผ๋ฐ์ ์ผ๋ก ์ต์ ํ๋ ํ์/ํ์ ๊ธฐ๋ฒ์ผ๋ก ๋ถ๋ฅ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(m * n) |
| Space | O(1) |
ํผ๋๋ฐฑ: ์ฒซ ํ/์ด์ ๋ง์ปค๋ก ํ์ฉํ๋ ํ์ค ์ต์ ํ ๋ฐฉ๋ฒ์ ํํ๋ค. ์ด๊ธฐ ์ํ๋ฅผ ๋ฐ๋ก ํ์ธํ์ฌ ๊ฒฝ๊ณ ์ผ์ด์ค๋ฅผ ์ฒ๋ฆฌํ๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Dynamic Programming, Combinatorial, Memoization
- ์ค๋ช : ๋ค์ํ ๊ตฌํ์์ 2D/1D DP๋ฅผ ์ด์ฉํ ์ต๋จ ๊ฒฝ๋ก์ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ณ์ฐํ๊ณ , ์ฌ๊ท+์บ์(๋ฉ๋ชจ์ด์ ์ด์ ) ํจํด์ผ๋ก ์ค๋ณต ๊ณ์ฐ์ ์ค์ด๋ ์ฌ๋ก๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๋ํ ์ฌ๊ท ๊ธฐ๋ฐ์ ์ํฅ์ DP๋ฅผ ๋ณด์ํ๋ memoization ๊ธฐ๋ฒ์ด ์ฌ์ฉ๋ฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
โน๏ธ ์ด ํ์ผ์๋ 4๊ฐ์ง ํ์ด๊ฐ ํฌํจ๋์ด ์์ด ๊ฐ๊ฐ ๋ถ์ํฉ๋๋ค.
ํ์ด 1: Solution.uniquePaths โ Time: O(m * n) / Space: O(m * n)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(m * n) |
| Space | O(m * n) |
ํผ๋๋ฐฑ: ์ฌ๋ฌ ์ ๊ทผ ๋ฐฉ์์ด ํฌํจ๋์ด ์์ง๋ง ๊ฐ๊ฐ์ ๊ตฌํ์ ์๋ก ๋ค๋ฅธ ๊ณต๊ฐ/์๊ฐ ํน์ฑ์ ๊ฐ์ง๋ค. ๋ฌธ์ ์ ๋ฐ๋ผ ์ ํ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 2: Solution.uniquePaths โ Time: O(m * n) / Space: O(n)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(m * n) |
| Space | O(n) |
ํผ๋๋ฐฑ: ํ๋ง๋ค ์ด์ ๊ฒฝ๋ก๋ฅผ ๋์ ์ ๋ฐ์ดํธํ์ฌ ๊ณต๊ฐ์ ์ค์ธ๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 3: Solution.uniquePaths โ Time: O(1) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(1) |
| Space | O(1) |
ํผ๋๋ฐฑ: ํฉํ ๋ฆฌ์ผ ๊ธฐ๋ฐ์ ์กฐํฉ ๊ณ์ฐ์ผ๋ก ์๊ฐ ๋ณต์ก๋๋ ์ ๋ ฅ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ์์ ๊ณ์์ ์ฐจ์ด๊ฐ ์๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 4: Solution.uniquePaths โ Time: O(m * n) / Space: O(m * n)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(m * n) |
| Space | O(m * n) |
ํผ๋๋ฐฑ: ์ฌ๊ท ๊ธฐ๋ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ค๋ณต๋๋ ๋ถ๋ถ ๋ฌธ์ ๋ฅผ ์ ์ฅํด ํจ์จ์ ์ ์งํ๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
๋ต์ ์ ์ถ ๋ฌธ์
์์ฑ์ ์ฒดํฌ ๋ฆฌ์คํธ
In Review๋ก ์ค์ ํด์ฃผ์ธ์.๊ฒํ ์ ์ฒดํฌ ๋ฆฌ์คํธ
Important
๋ณธ์ธ ๋ต์ ์ ์ถ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ๋ถ PR ํ๋ ์ด์์ ๋ฐ๋์ ๊ฒํ ๋ฅผ ํด์ฃผ์ ์ผ ํฉ๋๋ค!