[parkhojeong] WEEK 05 Solutions#2768
Conversation
๐ parkhojeong ๋์ ํ์ต ํํฉ์ด๋ฒ ์ฃผ ์ ์ถ ๋ฌธ์
๋์ ํ์ต ์์ฝ
๋ฌธ์ ํ์ด ํํฉ
๐ค ์ด ๋๊ธ์ GitHub App์ ํตํด ์๋์ผ๋ก ์์ฑ๋์์ต๋๋ค. ๐ข API ์ฌ์ฉ๋ (gpt-5-nano)
|
There was a problem hiding this comment.
์ซ์๊ธธ์ด๋ฅผ ๊ณ ์ ๊ฐ์ผ๋ก ํ๋๊น ํ์ฑ์ด ํ์คํ ๊ฐ๋จํ๊ณ ์ฌ์์ง๋ค์!
๋ฐฐ์๊ฐ๋๋ค.
There was a problem hiding this comment.
์ถ๊ฐ Node์์ด ํ ์ ์๋ค๋ฉด ๊ทธ๋ ๊ฒ ํ๋๊ฒ ๋ ์ข์ง ์์๊น ์ถ์ด์!
There was a problem hiding this comment.
์ด ํ์ด n์ด๋ m์ด ๋ญ์ง๋ ๋ชฐ๋ผ๋
- dfs์ cache ์๋์ด ์์
- dfs ๋ด๋ถ์ ์ฌ๋ผ์ด์ฑ ์ฌ์ฉ
๋๋ฌธ์๋ผ๋ O(m*n) ์ ์ง์ง ์๋๊ฑฐ์์
๋ค๋ง ์ด๊ฑฐ trie ์ด์ฉํด์ ๋น์ทํ ์์ค๊น์ง ์ต์ ํ๋ ๊ฐ๋ฅํ์ธ์!
There was a problem hiding this comment.
๋ฆฌ๋ทฐ ๊ฐ์ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ค์. ๋ง์ํ์ ๊ฒ์ฒ๋ผ ๋์น๋ ์ผ์ด์ค๊ฐ ์์ด์ split ์ฌ์ฉํ์ง ์๊ณ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ํ์ด๋ณด์์ต๋๋ค. 8facb2e
DaleSeo
left a comment
There was a problem hiding this comment.
5๋ฌธ์ ๋ชจ๋ ํธ์๋๋ผ ๊ณ ์ ๋ง์ผ์ จ์ต๋๋ค! ์๊ฐํด๋ณด์ค ๋งํ ์ง๋ฌธ์ ๋จ๊ฒผ์ต๋๋ค.
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Greedy, Two Pointers
- ์ค๋ช : ๋จ์ผ ํจ์ค์์ ๋งค๋ฒ ์ต์ ๊ฐ๊ฒฉ์ ์ถ์ ํ๊ณ ์ด์ต์ ์ต๋ํํ๋ ๋ฐฉ์์ผ๋ก ์ต์ ํด๋ฅผ ๊ตฌํ๋ค. ๊ฐ๊ฒฉ ๋ฐฐ์ด์ ํ ๋ฒ๋ง ์ํํ๋ฉฐ ํ์ฌ ๊ฐ๊ฒฉ๊ณผ ์ต์ ๊ตฌ๋งค๊ฐ์ ์ฐจ๋ฅผ ๋น๊ตํด ์ด์ต์ ๊ฐฑ์ ํ๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
โน๏ธ ์ด ํ์ผ์๋ 9๊ฐ์ง ํ์ด๊ฐ ํฌํจ๋์ด ์์ด ๊ฐ๊ฐ ๋ถ์ํฉ๋๋ค.
ํ์ด 1: Solution.maxProfit โ Time: O(n) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(1) |
ํผ๋๋ฐฑ: ํ ๋ฒ์ ๋ฃจํ์์ ํ์ฌ ๊ฐ๊ฒฉ ๋๋น ์ต์ ๊ฐ๊ฒฉ๊ณผ ๋์ ์ต๋ ์ด์ต์ ๊ฐฑ์ ํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 2: Codec.encode โ Time: O(total_chars) / Space: O(total_chars)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(total_chars) |
| Space | O(total_chars) |
ํผ๋๋ฐฑ: ๊ฐ ๋ฌธ์์ด ๊ธธ์ด๋ฅผ 3์๋ฆฌ๋ก ๊ณ ์ ํด ํ์ฑ์ด ์ฉ์ดํ๊ฒ ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 3: Codec.decode โ Time: O(total_chars) / Space: O(total_chars)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(total_chars) |
| Space | O(total_chars) |
ํผ๋๋ฐฑ: ์ธ๋ฑ์ค ๊ธฐ๋ฐ ํ์ฑ์ผ๋ก ์ ์ฒด ๋ฌธ์์ด์ ์์ฐจ์ ์ผ๋ก ์ฝ์ต๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 4: Solution.groupAnagrams โ Time: O(n * k log k) / Space: O(n * k)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n * k log k) |
| Space | O(n * k) |
ํผ๋๋ฐฑ: ๊ฐ ๋ฌธ์์ด์ ์ ๋ ฌํด ๊ทธ๋ฃนํํ๋ฏ๋ก ์ ์ฒด ์๊ฐ์ ๊ฐ ๋ฌธ์์ด์ ๊ธธ์ด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 5: Trie.insert โ Time: O(m) / Space: O(m * sigma)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(m) |
| Space | O(m * sigma) |
ํผ๋๋ฐฑ: ๋จ์ด ๊ธธ์ด m์ ๋น๋กํ๋ ์๊ฐ๊ณผ ๋ ธ๋ ๊ฐ์์ ๋ฐ๋ฅธ ๊ณต๊ฐ์ ์ฌ์ฉํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 6: Trie.findNode โ Time: O(m) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(m) |
| Space | O(1) |
ํผ๋๋ฐฑ: ์ฐ์ ํ์์ผ๋ก ์ต์ ์์๋ ์ ํ์ ์ผ๋ก ์งํ๋ฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 7: Trie.search โ Time: O(m) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(m) |
| Space | O(1) |
ํผ๋๋ฐฑ: ๋ ๋ ธ๋์ isLast๋ฅผ ํ์ธํด ์ ํํ ๋จ์ด ์ฌ๋ถ๋ฅผ ๋ฐํํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 8: Trie.startsWith โ Time: O(m) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(m) |
| Space | O(1) |
ํผ๋๋ฐฑ: ์ ๋์ด ์กด์ฌ ์ฌ๋ถ๋ findNode ํธ์ถ๋ก ํ๋จํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 9: Solution.wordBreak โ Time: O(n * w) / Space: O(n)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n * w) |
| Space | O(n) |
ํผ๋๋ฐฑ: ๋จ์ด ๊ธธ์ด ์กฐํฉ์ ๋ฐ๋ผ ๋ถ๊ธฐ ํญ์ด ์ปค์ง ์ ์์ง๋ง, ์ฌ๋ฐฉ๋ฌธ ๋ฐฉ์ง๋ฅผ ์ํด ๋ฐฉ๋ฌธ ์งํฉ์ ์ฌ์ฉํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Greedy, Dynamic Programming, Hash Map / Hash Set, Two Pointers, Binary Search, Divide and Conquer, Backtracking, Sliding Window, Fast & Slow Pointers, BFS, DFS, Union Find, Trie, Bit Manipulation, Heap / Priority Queue, Monotonic Stack, Dynamic Programming
- ์ค๋ช : ์ธ์ฝ๋ฉ์ ๋ฌธ์์ด ๊ธธ์ด ์์ ๊ณ ์ ๊ธธ์ด ํฌ๋งท์ผ๋ก ์ ์ฅํ๊ณ , ๋์ฝ๋ฉ์ ์ด ๊ณ ์ ๊ธธ์ด ํฌ๋งท์ ๋ฐ๋ผ ๋ฌธ์์ด ๊ธธ์ด๋ฅผ ์ฝ๊ณ ์๋ผ๋ด๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ๋์ด ์๋ค. ์ด๋ ํจํด์ ๊ณ ์ ๊ธธ์ด ํฌ๋งท์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ๊ตฌ๋ถํ๋ ์์ด๋์ด์ ํด๋นํ๋ฉฐ, ์ฃผ๋ก ๋ฌธ์์ด ๋ถ๋ฆฌ/๊ตฌ์ฑ์์์ ๊ท์น ๊ธฐ๋ฐ ์ฒ๋ฆฌ๋ก ํด์๋ ์ ์๋ค.
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Hash Map / Hash Set, Greedy, Divide and Conquer
- ์ค๋ช : ๋ฌธ์์ด์ ์ ๋ ฌํ ๊ฐ์ผ๋ก ํค๋ฅผ ๋ง๋ค๊ณ ํด์ ๋งต์ ๊ทธ๋ฃนํํ๋ฏ๋ก Hash Map ํจํด์ด ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ๊ฐ ๋ฌธ์์ด์ ์ ๋ ฌ ๊ฒฐ๊ณผ๋ฅผ ํค๋ก ๋ฌถ์ด ๊ฐ์ ๋ฐฐ์ด๋ก ๋ชจ์ผ๋ ๋ฐฉ์์ ๋น์๋ฏธ์ ์ต์ ํ ์์ด ๊ทธ๋ฃนํํ๋ ๊ฐ๋จํ ํด์ ๊ธฐ๋ฐ ํด๊ฒฐ์ฑ ์ ๋๋ค.
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Trie, Hash Map / Hash Set
- ์ค๋ช : Trie ๊ตฌํ์ผ๋ก ๋ฌธ์์ด์ ์ ๋์ฌ/์์ ์ผ์น๋ฅผ ํจ์จ์ ์ผ๋ก ํ์ํฉ๋๋ค. ๊ฐ ๋ฌธ์๋ณ ์์ ๋ ธ๋๋ก ๊ตฌ์ฑ๋์ด ํ์๊ณผ ์ฝ์ ์ ์ต์ O(m) ์๊ฐ, m์ ๋จ์ด ๊ธธ์ด์ ํด๋นํฉ๋๋ค. Hash Map์ ์์ ์ ์ฅ์ ํ์ฉ๋์ด ๋น ๋ฅธ ์กฐํ๋ฅผ ๋์ต๋๋ค.
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Depth-First Search, Backtracking, Dynamic Programming
- ์ค๋ช : DFS๋ก ๋ฌธ์์ด ๋ถ๋ถ๋ฌธ์ ํด๊ฒฐ์ ์๋ํ๊ณ ๋ฐฉ๋ฌธ ๊ธฐ๋ก์ผ๋ก ์ค๋ณต ํ์์ ์ ๊ฑฐํ๋ ๋ฐฉ์์ด๋ฉฐ, ๋ถ๋ถ ๋ฌธ์์ด์ด ์ฌ์ ์ ์๋์ง ํ์ธํ๋ฉฐ ์ฌ๊ท์ ์ผ๋ก ๋จ์ ๋ฌธ์์ด์ ๋ํด ํ์ํ๋ค. ์ด๋ ๋ฐฑํธ๋ํน ์ฑ๊ฒฉ๊ณผ ํจ๊ป ๋ถ๋ถ ๋ฌธ์ ๋ฅผ ์ ์ฅํด ์ค์ฒฉ ํ์์ ๊ฐ์์ํค๋ DP์ ์์ด๋์ด๊ฐ ๋ด์ฌ๋์ด ์๋ค.

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