[juhui-jeong] WEEK 12 Solutions#2606
Conversation
๐ juhui-jeong ๋์ ํ์ต ํํฉ์ด๋ฒ ์ฃผ ์ ์ถ ๋ฌธ์
๋์ ํ์ต ์์ฝ
๋ฌธ์ ํ์ด ํํฉ
๐ค ์ด ๋๊ธ์ GitHub App์ ํตํด ์๋์ผ๋ก ์์ฑ๋์์ต๋๋ค. ๐ข API ์ฌ์ฉ๋ (gpt-4.1-nano)
|
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Greedy, Sorting
- ์ค๋ช : ์ด ์ฝ๋๋ ์ธํฐ๋ฒ ์ ๋ ฌ ํ, ๊ฒน์นจ ์ฌ๋ถ๋ฅผ ํ๋จํ์ฌ ์ต์ ์ ๊ฑฐ ๊ฐ์๋ฅผ ์ฐพ๋ greedy ์ ๋ต์ ์ฌ์ฉํ๋ฉฐ, ์ ๋ ฌ์ ๋ฌธ์ ํด๊ฒฐ์ ํต์ฌ์ ์ ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
โน๏ธ ์ด ํ์ผ์๋ 3๊ฐ์ง ํ์ด๊ฐ ํฌํจ๋์ด ์์ด ๊ฐ๊ฐ ๋ถ์ํฉ๋๋ค.
ํ์ด 1: Solution.eraseOverlapIntervals โ Time: O(n log n) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n log n) |
| Space | O(1) |
ํผ๋๋ฐฑ: ๋ฐฐ์ด ์ ๋ ฌ์ด O(n log n)์ด๊ณ , ์ดํ ํ ๋ฒ ์ํํ๋ O(n)์ด๋ฏ๋ก ์ ์ฒด ์๊ฐ ๋ณต์ก๋๋ O(n log n)์ ๋๋ค. ์ ๋ ฌ ํ ๋ณ๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฏ๋ก ๊ณต๊ฐ ๋ณต์ก๋๋ O(1)์ ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 2: Solution.eraseOverlapIntervals โ Time: O(n log n) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n log n) |
| Space | O(1) |
ํผ๋๋ฐฑ: ๋ฐฐ์ด ์ ๋ ฌ์ด O(n log n)์ด๊ณ , ์ดํ ํ ๋ฒ ์ํํ๋ O(n)์ด๋ฏ๋ก ์ ์ฒด ์๊ฐ ๋ณต์ก๋๋ O(n log n)์ ๋๋ค. ์ ๋ ฌ ํ ๋ณ๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฏ๋ก ๊ณต๊ฐ ๋ณต์ก๋๋ O(1)์ ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 3: Solution.eraseOverlapIntervals โ Time: โ
O(n log n) โ O(n log n) / Space: โ O(n) โ O(1)
| ์ ์ ๋ถ์ | ์ค์ ๋ถ์ | ๊ฒฐ๊ณผ | |
|---|---|---|---|
| Time | O(n log n) | O(n log n) | โ |
| Space | O(n) | O(1) | โ |
ํผ๋๋ฐฑ: ๋ฐฐ์ด ์ ๋ ฌ์ด O(n log n)์ด๊ณ , ์ดํ ํ ๋ฒ ์ํํ๋ O(n)์ด๋ฏ๋ก ์ ์ฒด ์๊ฐ ๋ณต์ก๋๋ O(n log n)์ ๋๋ค. ์ ๋ ฌ ํ ๋ณ๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฏ๋ก ๊ณต๊ฐ ๋ณต์ก๋๋ O(1)์ ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Two Pointers
- ์ค๋ช : ์ด ์ฝ๋๋ ๋น ๋ฅธ ํฌ์ธํฐ(fast)์ ๋๋ฆฐ ํฌ์ธํฐ(slow)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์คํธ์ ๋์์ n๋ฒ์งธ ๋ ธ๋๋ฅผ ์ฐพ๊ณ ์ ๊ฑฐํ๋ ๋ฐฉ์์ผ๋ก, Two Pointers ํจํด์ ์ํฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
โน๏ธ ์ด ํ์ผ์๋ 2๊ฐ์ง ํ์ด๊ฐ ํฌํจ๋์ด ์์ด ๊ฐ๊ฐ ๋ถ์ํฉ๋๋ค.
ํ์ด 1: Solution.removeNthFromEnd โ Time: O(n) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(1) |
ํผ๋๋ฐฑ: ๋น ๋ฅธ ํฌ์ธํฐ๋ฅผ n๋งํผ ์ด๋์ํจ ํ, ๋๋ฆฐ ํฌ์ธํฐ์ ํจ๊ป ์ด๋ํ๋ฉฐ ๋์์ n๋ฒ์งธ ๋ ธ๋๋ฅผ ์ฐพ์ต๋๋ค. ๋ฆฌ์คํธ ๊ธธ์ด๋งํผ ํ ๋ฒ ์ํํ๋ฏ๋ก ์๊ฐ ๋ณต์ก๋๋ O(n), ์ถ๊ฐ ๊ณต๊ฐ์ ์์์ ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 2: Solution.removeNthFromEnd โ Time: O(n) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(1) |
ํผ๋๋ฐฑ: ๋ฆฌ์คํธ ๊ธธ์ด๋ฅผ ๋จผ์ ๊ณ์ฐํ๊ณ , ๊ทธ ํ ์ ๊ฑฐ ์์น๋ฅผ ์ฐพ๊ธฐ ์ํด ํ ๋ฒ ๋ ์ํํฉ๋๋ค. ๋ ๋ฒ ์ํ์ง๋ง ์๊ฐ ๋ณต์ก๋๋ O(n)์ด๊ณ , ๊ณต๊ฐ์ ์์์ ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: DFS, BFS
- ์ค๋ช : ์ด ์ฝ๋๋ ์ฌ๊ท๋ฅผ ์ด์ฉํ DFS์ ๋ฐ๋ณต๋ฌธ์ ์ด์ฉํ BFS ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ํธ๋ฆฌ์ ๋ ธ๋๋ค์ ์ํํ๋ฉฐ ๋น๊ตํฉ๋๋ค. ๋ ํจํด ๋ชจ๋ ํธ๋ฆฌ ๊ตฌ์กฐ ํ์์ ์ ํฉํฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
โน๏ธ ์ด ํ์ผ์๋ 2๊ฐ์ง ํ์ด๊ฐ ํฌํจ๋์ด ์์ด ๊ฐ๊ฐ ๋ถ์ํฉ๋๋ค.
ํ์ด 1: Solution.isSameTree โ Time: โ
O(n) โ O(n) / Space: โ
O(h) โ O(h)
| ์ ์ ๋ถ์ | ์ค์ ๋ถ์ | ๊ฒฐ๊ณผ | |
|---|---|---|---|
| Time | O(n) | O(n) | โ |
| Space | O(h) | O(h) | โ |
ํผ๋๋ฐฑ: ๋ชจ๋ ๋ ธ๋๋ฅผ ํ ๋ฒ์ฉ ๋ฐฉ๋ฌธํ๋ฏ๋ก ์๊ฐ ๋ณต์ก๋๋ O(n). ์ฌ๊ท ํธ์ถ๋ก ์ธํด ํธ์ถ ์คํ์ด ํธ๋ฆฌ ๋์ด๋งํผ ์์ด๋ฏ๋ก ๊ณต๊ฐ ๋ณต์ก๋๋ O(h) (h๋ ํธ๋ฆฌ์ ๋์ด)์ ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 2: Solution.isSameTree โ Time: โ
O(n) โ O(n) / Space: โ
O(n) โ O(n)
| ์ ์ ๋ถ์ | ์ค์ ๋ถ์ | ๊ฒฐ๊ณผ | |
|---|---|---|---|
| Time | O(n) | O(n) | โ |
| Space | O(n) | O(n) | โ |
ํผ๋๋ฐฑ: ๋ชจ๋ ๋ ธ๋๋ฅผ ํ ๋ฒ์ฉ ๋ฐฉ๋ฌธํ๋ฏ๋ก ์๊ฐ ๋ณต์ก๋๋ O(n). ํ๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ต์ ์ ๊ฒฝ์ฐ ๋ชจ๋ ๋ ธ๋๊ฐ ํ์ ์ ์ฅ๋๋ฏ๋ก ๊ณต๊ฐ ๋ณต์ก๋๋ O(n)์ ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: DFS
- ์ค๋ช : ์ด ์ฝ๋๋ ์ฌ๊ท์ ๋ฐฉ์์ผ๋ก ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ง๋ ฌํ์ ์ญ์ง๋ ฌํํ๋๋ฐ, DFS(๊น์ด ์ฐ์ ํ์) ํจํด์ ํ์ฉํ์ฌ ํธ๋ฆฌ์ ๋ชจ๋ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
โน๏ธ ์ด ํ์ผ์๋ 2๊ฐ์ง ํ์ด๊ฐ ํฌํจ๋์ด ์์ด ๊ฐ๊ฐ ๋ถ์ํฉ๋๋ค.
ํ์ด 1: Codec.serialize โ Time: O(n) / Space: O(n)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(n) |
ํผ๋๋ฐฑ: ๋ชจ๋ ๋ ธ๋๋ฅผ ํ ๋ฒ์ฉ ๋ฐฉ๋ฌธํ์ฌ ๋ฌธ์์ด๋ก ๋ณํํ๋ฏ๋ก ์๊ฐ ๋ณต์ก๋๋ O(n). ์ฌ๊ท ํธ์ถ๋ก ์ธํ ํธ์ถ ์คํ๊ณผ ๊ฒฐ๊ณผ ๋ฌธ์์ด ํฌ๊ธฐ ๋๋ฌธ์ ๊ณต๊ฐ ๋ณต์ก๋๋ O(n)์ ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 2: Codec.deserialize โ Time: O(n) / Space: O(n)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(n) |
ํผ๋๋ฐฑ: ์ ๋ ฅ ๋ฌธ์์ด์ ๋ฐฐ์ด๋ก ๋ถํ ํ, ์ฌ๊ท์ ์ผ๋ก ๋ ธ๋๋ฅผ ์ฌ๊ตฌ์ฑํ๋ฏ๋ก ์๊ฐ ๋ณต์ก๋๋ O(n). ๋ฐฐ์ด ํฌ๊ธฐ๋งํผ ํธ์ถ ์คํ์ด ์์ด๋ฏ๋ก ๊ณต๊ฐ ๋ณต์ก๋๋ O(n)์ ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
๋ต์ ์ ์ถ ๋ฌธ์
์์ฑ์ ์ฒดํฌ ๋ฆฌ์คํธ
In Review๋ก ์ค์ ํด์ฃผ์ธ์.๊ฒํ ์ ์ฒดํฌ ๋ฆฌ์คํธ
Important
๋ณธ์ธ ๋ต์ ์ ์ถ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ๋ถ PR ํ๋ ์ด์์ ๋ฐ๋์ ๊ฒํ ๋ฅผ ํด์ฃผ์ ์ผ ํฉ๋๋ค!