[alphaorderly] WEEK 04 Solutions#2737
Conversation
๐ alphaorderly ๋์ ํ์ต ํํฉ์ด๋ฒ ์ฃผ ์ ์ถ ๋ฌธ์
๋์ ํ์ต ์์ฝ
๋ฌธ์ ํ์ด ํํฉ
๐ค ์ด ๋๊ธ์ GitHub App์ ํตํด ์๋์ผ๋ก ์์ฑ๋์์ต๋๋ค. ๐ข API ์ฌ์ฉ๋ (gpt-5-nano)
|
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Dynamic Programming
- ์ค๋ช : ์ฝ์ธ ๊ตํ ๋ฌธ์ ๋ ๋ชฉํ ๊ธ์ก์ ๊ตฌ์ฑํ๋ ์ต์ ๋์ ์๋ฅผ ๋ถ๋ถ ๋ฌธ์ ๋ก ๋๋๊ณ , ์ฌ๊ท/๋ฐ๋ณต์ผ๋ก ์ต์ ํด๋ฅผ ๊ตฌ์ฑํ๋ DP ํจํด(Top-Down ๋ฐ Bottom-Up, ๋ฐ ๊ณต๊ฐ ์ต์ ํ)์ด ์ฌ์ฉ๋ฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
โน๏ธ ์ด ํ์ผ์๋ 3๊ฐ์ง ํ์ด๊ฐ ํฌํจ๋์ด ์์ด ๊ฐ๊ฐ ๋ถ์ํฉ๋๋ค.
ํ์ด 1: Solution.coinChange โ Time: O(n * amount) / Space: O(n * amount)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n * amount) |
| Space | O(n * amount) |
ํผ๋๋ฐฑ: ํ๋์ ๊ธ์ก์ ๋ํด ๊ฐ ์ฝ์ธ ์์น๋ณ๋ก ์๋ธ๋ฌธ์ ๋ฅผ cache๋ก ์ฌ์ฌ์ฉํ์ฌ ์ค๋ณต์ ์ ๊ฑฐํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 2: Solution.coinChange โ Time: O(n * amount) / Space: O(n * amount)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n * amount) |
| Space | O(n * amount) |
ํผ๋๋ฐฑ: ์ฝ์ธ ์ธ๋ฑ์ค์ ๋จ์ ๊ธ์ก์ ์กฐํฉ์ ์ํ๋ก ํ์ฌ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ํ์ํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 3: Solution.coinChange โ Time: O(n * amount) / Space: O(amount)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n * amount) |
| Space | O(amount) |
ํผ๋๋ฐฑ: ๊ฑฐ๊ธฐ์ ์ฝ์ธ ์ํ๋ฅผ ๋ฐ๊ฟ๊ฐ๋ฉฐ ๊ฐ๋ฅํ ์ต์ ๊ฐ์๋ฅผ ๊ฐฑ์ ํฉ๋๋ค. ์ถ๊ฐ ๊ณต๊ฐ ์ ์ฝ์ด ๊ฐ๋ฅํด์ก์ต๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Binary Search
- ์ค๋ช : ์ฝ๋์ ํต์ฌ์ ํ์ ๋ ์ ๋ ฌ ๋ฐฐ์ด์์ ์ด์ง ํ์์ ์ด์ฉํด ์ต์๊ฐ์ ์์น๋ฅผ ์ฐพ๋ ๋ฐฉ์์ด๋ค. left, right๋ฅผ ์ด์ฉํ ๋ถํ ๊ณผ mid ๋น๊ต๋ก O(log N) ํ์์ ๊ตฌํํ๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
โน๏ธ ์ด ํ์ผ์๋ 2๊ฐ์ง ํ์ด๊ฐ ํฌํจ๋์ด ์์ด ๊ฐ๊ฐ ๋ถ์ํฉ๋๋ค.
ํ์ด 1: Solution.findMin โ Time: O(log N) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(log N) |
| Space | O(1) |
ํผ๋๋ฐฑ: ์์ชฝ ๋๊ณผ ์ค๊ฐ ๊ฐ์ ๋น๊ตํด ์ต์๊ฐ์ ์์น๋ฅผ ์ด์ง ํ์์ผ๋ก ์ขํ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 2: Solution.findMin โ Time: O(N) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(N) |
| Space | O(1) |
ํผ๋๋ฐฑ: ์ต์ ์ ํ์ด๊ฐ ์๋๋ฏ๋ก ํ ์คํธ์ฉ ๋์์ผ๋ก ๋จ๊ฒจ๋ ํํ์ ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Binary Search, Depth First Search, Breadth First Search, Queue, Stack, Greedy, Dynamic Programming, Two Pointers, Sliding Window, Backtracking, Monotonic Stack, Heap / Priority Queue, Hash Map / Hash Set, Divide and Conquer, Union Find, Trie, Bit Manipulation
- ์ค๋ช : ์ด ์ฝ๋๋ ์ด์ง ํธ๋ฆฌ์ ๊น์ด๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ๋ก, DFS(์ฌ๊ท ๋ฐ ์คํ ์ด์ฉ), BFS/๋ ๋ฒจ ์ํ ํ ๋ฐฉ์ ๋ฑ ์ฌ๋ฌ traversal ๋ฐฉ์์ด ์ ์๋์ด ์์ต๋๋ค. ํธ๋ฆฌ ์ํ ํจํด๊ณผ ๊น์ด ๊ณ์ฐ์ ๋ํ์ ์ธ DFS/BFS ํจํด์ ์ํฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
โน๏ธ ์ด ํ์ผ์๋ 4๊ฐ์ง ํ์ด๊ฐ ํฌํจ๋์ด ์์ด ๊ฐ๊ฐ ๋ถ์ํฉ๋๋ค.
ํ์ด 1: Solution.maxDepth โ Time: O(N) / Space: O(N)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(N) |
| Space | O(N) |
ํผ๋๋ฐฑ: ๋ ธ๋ ์์ ๋น๋กํ๋ ์ฌ๊ท ์คํ์ ์ฌ์ฉํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 2: Solution.maxDepth โ Time: O(N) / Space: O(N)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(N) |
| Space | O(N) |
ํผ๋๋ฐฑ: ๋ช ์์ ์คํ์ผ๋ก ๊น์ด๋ฅผ ์ถ์ ํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 3: Solution.maxDepth โ Time: O(N) / Space: O(N)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(N) |
| Space | O(N) |
ํผ๋๋ฐฑ: ํ๋ฅผ ์ฌ์ฉํด ๋ ๋ฒจ๋ณ๋ก ๊น์ด๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 4: Solution.maxDepth โ Time: O(N) / Space: O(N)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(N) |
| Space | O(N) |
ํผ๋๋ฐฑ: ์ต์ข ๊น์ด๋ฅผ ๋ ๋ฒจ ๋ณ์๋ก ์ถ์ ํ๋ BFS ๋ณํ์ ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Two Pointers, Merge Two Sorted Lists is typically solved with a pointer-based approach, Dynamic Programming
- ์ค๋ช : ๋ฆฌ์คํธ๋ฅผ ์์ฐจ์ ์ผ๋ก ๋น๊ตํ๋ฉฐ ํฌ์ธํฐ๋ฅผ ์ด๋ํ๋ ๊ตฌ์กฐ๋ก ๋ ์ ๋ ฌ ๋ฆฌ์คํธ๋ฅผ ํฉ์น๋ ๋ฐฉ์์ด๋ฏ๋ก Two Pointers ํจํด์ ํด๋นํฉ๋๋ค. ์ฌ๊ท ๋ฒ์ ์ญ์ ํฌ์ธํฐ๋ฅผ ๋ฐ๋ผ ์ฐ๊ฒฐ์ ๊ตฌ์ฑํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ๋ฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
โน๏ธ ์ด ํ์ผ์๋ 2๊ฐ์ง ํ์ด๊ฐ ํฌํจ๋์ด ์์ด ๊ฐ๊ฐ ๋ถ์ํฉ๋๋ค.
ํ์ด 1: Solution.mergeTwoLists โ Time: O(N) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(N) |
| Space | O(1) |
ํผ๋๋ฐฑ: ๋๋ฏธ ๋ ธ๋๋ฅผ ์ฌ์ฉํด ์ผ๊ด๋ ์ฐ๊ฒฐ์ ์ ์งํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 2: Solution.mergeTwoLists โ Time: O(N) / Space: O(N)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(N) |
| Space | O(N) |
ํผ๋๋ฐฑ: ์ฌ๊ท ๊น์ด๊ฐ ์ฆ๊ฐํ ๊ฒฝ์ฐ ์คํ ์ฌ์ฉ์ด ๋์ด๋ฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Backtracking
- ์ค๋ช : ์ฝ๋๋ ๋จ์ด ๊ฒ์์ ์ํด ์ฌ๊ท์ ๋ฐฑํธ๋ํน(backtracking)์ผ๋ก ๋ณด๋๋ฅผ ํ์ํฉ๋๋ค. ๋ฐฉ๋ฌธ ์ฌ๋ถ ๊ด๋ฆฌ์ ๋ฐฉํฅ์ผ๋ก์ ์์ฐจ์ ํ์์ ํตํด ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ์๋ํ๋ค๊ฐ ์ผ์นํ๋ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ผ๋ฉด ์ข ๋ฃํฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
โน๏ธ ์ด ํ์ผ์๋ 2๊ฐ์ง ํ์ด๊ฐ ํฌํจ๋์ด ์์ด ๊ฐ๊ฐ ๋ถ์ํฉ๋๋ค.
ํ์ด 1: Solution.exist โ Time: O(N * 4^L) / Space: O(L)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(N * 4^L) |
| Space | O(L) |
ํผ๋๋ฐฑ: ๋ค ๋ฐฉํฅ์ผ๋ก ํ์ํ๋ฉฐ ๋ฐฉ๋ฌธ ์ฒดํฌ๋ก ์ค๋ณต ๊ฒฝ๋ก๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 2: Solution.exist โ Time: O(N * 4^L) / Space: O(L)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(N * 4^L) |
| Space | O(L) |
ํผ๋๋ฐฑ: ๋ณด๋์ ํฌ๊ธฐ/๋จ์ด ๊ตฌ์ฑ ์ฌ๋ถ๋ฅผ ๋จผ์ ์ ๊ฒํด ๋ถํ์ํ ํ์์ ์ฐจ๋จํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
๋ต์ ์ ์ถ ๋ฌธ์
์์ฑ์ ์ฒดํฌ ๋ฆฌ์คํธ
In Review๋ก ์ค์ ํด์ฃผ์ธ์.๊ฒํ ์ ์ฒดํฌ ๋ฆฌ์คํธ
Important
๋ณธ์ธ ๋ต์ ์ ์ถ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ๋ถ PR ํ๋ ์ด์์ ๋ฐ๋์ ๊ฒํ ๋ฅผ ํด์ฃผ์ ์ผ ํฉ๋๋ค!