[parkhojeong] WEEK 06 Solutions - #2792
Conversation
๐ parkhojeong ๋์ ํ์ต ํํฉ์ด๋ฒ ์ฃผ ์ ์ถ ๋ฌธ์
๋์ ํ์ต ์์ฝ
๋ฌธ์ ํ์ด ํํฉ
๐ค ์ด ๋๊ธ์ GitHub App์ ํตํด ์๋์ผ๋ก ์์ฑ๋์์ต๋๋ค. ๐ข API ์ฌ์ฉ๋ (gpt-5-nano)
|
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Two Pointers, Greedy
- ์ค๋ช : ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ํฌ์ธํฐ๋ฅผ ๋๊ณ ๊ฐ๋ฅํ ์ฉ์ ์ ๊ณ์ฐํ๋ฉฐ ๋ ํฐ ๋ฒฝ์ ๋ฒ๋ฆฌ๋ ๋ฐฉ์์ผ๋ก ์ต์ ํด๋ฅผ ์ฐพ๋ ํจํด์ผ๋ก, ํ ๋ฒ์ ์ ํ ์ํ๋ก ํด๊ฒฐํ๋ ๊ทธ๋ฆฌ๋+ํฌ ํฌ์ธํฐ ์ ๊ทผ์ ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
โน๏ธ ์ด ํ์ผ์๋ 11๊ฐ์ง ํ์ด๊ฐ ํฌํจ๋์ด ์์ด ๊ฐ๊ฐ ๋ถ์ํฉ๋๋ค.
ํ์ด 1: Solution.maxArea โ Time: O(n) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(1) |
ํผ๋๋ฐฑ: ์ผ์ชฝ/์ค๋ฅธ์ชฝ ํฌ์ธํฐ๋ฅผ ํ ์นธ์ฉ ์ด๋์ํค๋ฉฐ ์ต๋ ๋์ด๋ฅผ ๊ฐฑ์ ํฉ๋๋ค. ์ถ๊ฐ ๊ณต๊ฐ ์์ด ์์ ๊ณต๊ฐ์ผ๋ก ๊ตฌํ๋์ด ์์ต๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 2: WordDictionary.addWord โ Time: O(n) / Space: O(sum ๊ธธ์ด)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(sum ๊ธธ์ด) |
ํผ๋๋ฐฑ: Trie๋ฅผ ์ฌ์ฉํด ๋จ์ด๋ฅผ ์ ์ฅํ๊ณ '.'๋ฅผ ๋ชจ๋ ์์์ผ๋ก ํ์ฅํ๋ฉฐ ๊ฒ์ํฉ๋๋ค. ๊ตฌํ์ ์ฌ๋ฌ ๋ณด์กฐ ๋ฉ์๋๊ฐ ์์ฌ ์์ด ์ ์ง๋ณด์ ์ธก๋ฉด์์ ๋ค์ ๋ณต์กํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 3: WordDictionary.search โ Time: O(m) / Space: O(sum ๊ธธ์ด)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(m) |
| Space | O(sum ๊ธธ์ด) |
ํผ๋๋ฐฑ: ์ฌ๊ท๋ก '.'๋ฅผ ๋ชจ๋ ์์ ๋ ธ๋์ ๋ํด ํ์ํฉ๋๋ค. ์ต์ ์ ๊ฒฝ์ฐ ์ง์์ ์ผ๋ก ์ฆ๊ฐํ ์ ์์ต๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 4: Trie.addWord โ Time: O(n) / Space: O(sum ๊ธธ์ด)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(sum ๊ธธ์ด) |
ํผ๋๋ฐฑ: ์ฐ์๋ ๋ฌธ์๋ก ํธ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๊ณ ๋ง์ง๋ง ๋ฌธ์์ ์ข ๋ฃ ํ๋๊ทธ๋ฅผ ์ค์ ํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 5: Trie.__init__ โ Time: O(1) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(1) |
| Space | O(1) |
ํผ๋๋ฐฑ: ๋ฃจํธ ๋ ธ๋๋ฅผ ํ๋ ์์ฑํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 6: Node.__init__ โ Time: O(1) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(1) |
| Space | O(1) |
ํผ๋๋ฐฑ: ๋ ธ๋์ ๋ฌธ์ ์ ๋ณด์ ์ข ๋ฃ ์ฌ๋ถ, ์์ ๋งต์ ์ด๊ธฐํํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 7: Node.getChild โ Time: O(1) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(1) |
| Space | O(1) |
ํผ๋๋ฐฑ: ํด๋น ๋ฌธ์ ์กด์ฌ ์ฌ๋ถ๋ฅผ ํด์๋งต์์ ์ฆ์ ์กฐํํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 8: Node.getAllChild โ Time: O(1) / Space: O(k)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(1) |
| Space | O(k) |
ํผ๋๋ฐฑ: ์์ ์ปฌ๋ ์ ์ ๋ทฐ๋ฅผ ๋ฐํํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 9: Node.addChild โ Time: O(1) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(1) |
| Space | O(1) |
ํผ๋๋ฐฑ: ์์ ๋งต์ ๋ ธ๋๋ฅผ ์ฝ์ ํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 10: WordDictionary โ Time: O(1) / Space: O(sum ๊ธธ์ด)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(1) |
| Space | O(sum ๊ธธ์ด) |
ํผ๋๋ฐฑ: Trie๋ฅผ ๋ํํด addWord์ search๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 11: WordDictionary.__init__ โ Time: O(1) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(1) |
| Space | O(1) |
ํผ๋๋ฐฑ: ํธ๋ผ์ด๋ฅผ ๋ด๋ถ์ ๊ตฌ์ฑํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Trie, Backtracking, Dynamic Programming
- ์ค๋ช : ์ด ์ฝ๋๋ Trie(์ ๋์ฌ ํธ๋ฆฌ)๋ฅผ ์ด์ฉํด ๋จ์ด๋ฅผ ์ ์ฅํ๊ณ ๊ฒ์ํฉ๋๋ค. ๊ฒ์์์ '.' ์์ผ๋์นด๋๋ฅผ ์ฌ๊ท์ ์ผ๋ก ํ์ํ๋ ๋ถ๋ถ์ ๋ถ๋ถ ๋ฌธ์์ด ๋งค์นญ์ ๋ํ ๋ฐฑํธ๋ํน ์ฑ์ง์ ๋ณด์ด๋ฉฐ, ์ ์ฒด์ ์ผ๋ก ๋จ์ด ํ์์ ์ํ ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ํ์ฉํฉ๋๋ค.
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Dynamic Programming
- ์ค๋ช : ์ซ์ ๋ฐฐ์ด์ ๋ถ๋ถ์์ด ๊ธธ์ด๋ฅผ ๋ถ๋ถ๋ฌธ์ ๋ก ๋๋์ด ๊ฐ ์์น๊น์ง์ ์ต์ฅ ์ฆ๊ฐ ๋ถ๋ถ์์ด ๊ธธ์ด๋ฅผ ์ ์ฅํ๋ ์ ํ์ ์ธ DP(์ ํ์ ๋์ ๊ณํ๋ฒ) ํจํด์ ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n^2) |
| Space | O(n) |
ํผ๋๋ฐฑ: ๊ฐ i์ ๋ํด ์์ j๋ค์ ํ์ธํ๋ฉฐ LIS ๊ธธ์ด๋ฅผ ๊ฐฑ์ ํ๋ ์ ํ์ ์ธ DP ํ์ด์ ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Monotonic Stack, Hash Map / Hash Set, Greedy, Divide and Conquer, Two Pointers, Sliding Window, Fast & Slow Pointers, BFS, DFS, Backtracking, Dynamic Programming, Binary Search, Union Find, Trie, Bit Manipulation
- ์ค๋ช : ํด๋น ์ฝ๋๋ ๋์ ํ(์คํ์ด๋ด) ์ํ๋ก ํ๋ ฌ์ ์ํํ๋ฉฐ ๋ฐฉ๋ฌธ ํ์๋ฅผ ํตํด ๊ฒฝ๋ก๋ฅผ ํ์ํฉ๋๋ค. ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ์ข์ฐ์ํ ๋ฐฉํฅ์ผ๋ก ๊ฐฏ์๋ฅผ ํ์ฅํ๋ ๋ฐฉ์์ Sliding Window/Two Pointers์ ์ ์ฌํ ์์ฐจ์ ํ์ฅ ํจํด์ ๊ฐ๊น๊ณ , ๋ฐฉ๋ฌธ ์ฌ๋ถ ํ์ธ์ ์ํ ๊ด๋ฆฌ๋ก Hash Set/Hash Map์ ๊ฐ๋ ๊ณผ ์ฐ๊ฒฐ๋ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํต์ฌ์ ๋์ ๋ฐฉํฅ์ผ๋ก ์์ง์ด๋ฉฐ ๋ชจ๋ ์์๋ฅผ ๋ฐฉ๋ฌธํ๋ ํ์ ๋ก์ง์ผ๋ก, DFS/BFS์ ๋จ์ ๊ตฌํ์ด๋ผ๊ธฐ๋ณด๋จ ๋ฐฉํฅ ์ ํ๊ณผ ๊ฒฝ๊ณ ์ฒดํฌ๋ฅผ ๋ฐ๋ณตํ๋ ํ์ ํจํด์ ๊ฐ๊น์ต๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(m*n) |
| Space | O(1) |
ํผ๋๋ฐฑ: ์ ์๋ฆฌ ๋ฐฉ๋ฌธ ํ์๊ณผ ๊ฒฝ๊ณ ๊ฒ์ฌ๋ก ๋ชจ๋ ์์๋ฅผ ํ ๋ฒ์ฉ ๋ฐฉ๋ฌธํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Stack
- ์ค๋ช : ์คํ์ ์ด์ฉํด ์ฌ๋ ๊ดํธ๋ฅผ ์ ์ฅํ๊ณ ๋ซ๋ ๊ดํธ๋ฅผ ๋ง๋ ๋ ์คํ์ ํ๊ณผ ๋งค์นญ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ๋ฐฉ์์ผ๋ก ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ํ๋ณํฉ๋๋ค. ์์ฐจ ํ์๊ณผ ์คํ ์ฐ์ฐ์ผ๋ก ๊ตฌํ๋ ๋ํ์ ์ธ ๊ดํธ ๋ฌธ์ ํ์ด์ ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(n) |
ํผ๋๋ฐฑ: ์คํ์ผ๋ก ์ง์ ๋ง์ถ๊ณ ๋งคํ ํ ์ด๋ธ์ผ๋ก ์ ํจ์ฑ ๊ฒ์ฌํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
๋ต์ ์ ์ถ ๋ฌธ์
์์ฑ์ ์ฒดํฌ ๋ฆฌ์คํธ
In Review๋ก ์ค์ ํด์ฃผ์ธ์.๊ฒํ ์ ์ฒดํฌ ๋ฆฌ์คํธ
Important
๋ณธ์ธ ๋ต์ ์ ์ถ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ๋ถ PR ํ๋ ์ด์์ ๋ฐ๋์ ๊ฒํ ๋ฅผ ํด์ฃผ์ ์ผ ํฉ๋๋ค!