[juhui-jeong] WEEK 13 Solutions#2616
Conversation
๐ juhui-jeong ๋์ ํ์ต ํํฉ์ด๋ฒ ์ฃผ ์ ์ถ ๋ฌธ์
๋์ ํ์ต ์์ฝ
๋ฌธ์ ํ์ด ํํฉ
๐ค ์ด ๋๊ธ์ GitHub App์ ํตํด ์๋์ผ๋ก ์์ฑ๋์์ต๋๋ค. ๐ข API ์ฌ์ฉ๋ (gpt-4.1-nano)
|
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Binary Search, Tree
- ์ค๋ช : ์ด ์ฝ๋๋ ์ด์ง ํ์ ํธ๋ฆฌ์ ํน์ฑ์ ํ์ฉํ์ฌ ๋ ๋ ธ๋์ ๊ณตํต ์กฐ์์ ์ฐพ๋ ๋ฌธ์ ๋ก, ๊ฐ ๋น๊ต๋ฅผ ํตํด ํ์ ๋ฒ์๋ฅผ ์ขํ๋ ์ด์ง ํ์ ํจํด์ด ์ ์ฉ๋ฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
โน๏ธ ์ด ํ์ผ์๋ 2๊ฐ์ง ํ์ด๊ฐ ํฌํจ๋์ด ์์ด ๊ฐ๊ฐ ๋ถ์ํฉ๋๋ค.
ํ์ด 1: Solution.lowestCommonAncestor โ Time: O(h) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(h) |
| Space | O(1) |
ํผ๋๋ฐฑ: ํธ๋ฆฌ์ ๋์ด h์ ๋น๋กํ๋ ๋ฐ๋ณต๋ฌธ์ ํตํด, p์ q์ ๊ฐ์ ๋ฐ๋ผ ์ข์ฐ๋ก ๋ด๋ ค๊ฐ๋ฉฐ ์ต์ ์ ๊ณตํต ์กฐ์์ ์ฐพ๋๋ค. ์ต์ ์ ๊ฒฝ์ฐ ํธ๋ฆฌ์ ๋์ด๋งํผ ํ์ํ๋ฏ๋ก O(h) ์๊ฐ๊ณผ O(1) ๊ณต๊ฐ์ด ์์๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 2: Solution.lowestCommonAncestor โ Time: O(h) / Space: O(h)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(h) |
| Space | O(h) |
ํผ๋๋ฐฑ: ์ฌ๊ท ํธ์ถ์ ํตํด ํธ๋ฆฌ์ ๋์ด๋งํผ ํธ์ถ ์คํ์ด ์์ด๋ฏ๋ก, ์๊ฐ์ ํธ๋ฆฌ ๋์ด h์ ๋น๋กํ๊ณ ๊ณต๊ฐ์ O(h)์ด๋ค. p์ q์ ๊ฐ์ ๋ฐ๋ผ ์ข์ฐ๋ก ๋ด๋ ค๊ฐ๋ฉฐ ์ต์ ์ ๊ณตํต ์กฐ์์ ์ฐพ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Greedy, Sorting
- ์ค๋ช : ์ด ์ฝ๋๋ ๊ฒน์น์ง ์๋ ๊ตฌ๊ฐ์ ์ฐพ๊ธฐ ์ํด ์ ๋ ฌ ํ ํ์์ ์ ํ์ ํ๋ ๋ฐฉ์์ผ๋ก ํด๊ฒฐํ๋ฉฐ, ์ ๋ ฌ์ด ํต์ฌ ํจํด์ ๋๋ค. ๊ทธ๋ฆฌ๋ ์ ๋ต์ผ๋ก ์ต์ ์ ์ ํ์ ํฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
โน๏ธ ์ด ํ์ผ์๋ 3๊ฐ์ง ํ์ด๊ฐ ํฌํจ๋์ด ์์ด ๊ฐ๊ฐ ๋ถ์ํฉ๋๋ค.
ํ์ด 1: Solution.eraseOverlapIntervals โ Time: O(n log n) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n log n) |
| Space | O(1) |
ํผ๋๋ฐฑ: intervals ๋ฐฐ์ด์ ์ ๋ ฌํ ํ, ๊ฒน์น๋ ๊ตฌ๊ฐ์ ์ฐพ์ผ๋ฉฐ ์ต์ ์ ๊ฑฐ ํ์๋ฅผ ๊ณ์ฐํ๋ค. ์ ๋ ฌ์ด ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฒฐ์ ํ๋ฉฐ, ์ดํ ๋ฐ๋ณต๋ฌธ์ O(n)์ด๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 2: Solution.eraseOverlapIntervals โ Time: O(n log n) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n log n) |
| Space | O(1) |
ํผ๋๋ฐฑ: ๋๋๋ ์๊ฐ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ์ฌ ๊ฒน์น๋ ๊ตฌ๊ฐ์ ์ต์ํํ๋ค. ์ ๋ ฌ ํ ๋ฐ๋ณต๋ฌธ์ O(n)์ด๋ฉฐ, ์ ์ฒด ์๊ฐ ๋ณต์ก๋๋ ์ ๋ ฌ์ ์ํด ๊ฒฐ์ ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 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)์ด๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Two Pointers
- ์ค๋ช : ๋ ํฌ์ธํฐ๋ฅผ ํ์ฉํ์ฌ ๋ฆฌ์คํธ๋ฅผ ํ ๋ฒ ์ํํ๋ฉฐ n๋ฒ์งธ ๋ ธ๋๋ฅผ ์ฐพ๊ณ ์ ๊ฑฐํ๋ ๋ฐฉ์์ผ๋ก ํจ์จ์ ์ด๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
โน๏ธ ์ด ํ์ผ์๋ 2๊ฐ์ง ํ์ด๊ฐ ํฌํจ๋์ด ์์ด ๊ฐ๊ฐ ๋ถ์ํฉ๋๋ค.
ํ์ด 1: Solution.removeNthFromEnd โ Time: O(n) / Space: O(1)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(1) |
ํผ๋๋ฐฑ: ๋๋ฏธ ๋ ธ๋๋ฅผ ํ์ฉํ์ฌ fast์ slow ํฌ์ธํฐ๋ฅผ n๋งํผ ์ฐจ์ด ๋๊ฒ ์ด๋์ํจ ํ, ๋์์ ์ด๋ํ๋ฉฐ ์ ๊ฑฐ ์์น๋ฅผ ์ฐพ๋๋ค. ์๊ฐ์ ๋ฆฌ์คํธ ๊ธธ์ด n์ ๋น๋กํ๋ฉฐ, ๊ณต๊ฐ์ ์์์ด๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 2: Solution.removeNthFromEnd โ Time: โ
O(n) โ O(n) / Space: โ
O(1) โ O(1)
| ์ ์ ๋ถ์ | ์ค์ ๋ถ์ | ๊ฒฐ๊ณผ | |
|---|---|---|---|
| Time | O(n) | O(n) | โ |
| Space | O(1) | O(1) | โ |
ํผ๋๋ฐฑ: ๋ฆฌ์คํธ ์ ์ฒด ๊ธธ์ด๋ฅผ ๋จผ์ ๊ณ์ฐํ ํ, ์ ๊ฑฐํ ์์น๋ฅผ ์ฐพ์์ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ค. ๋ ๋ฒ์ ์ํ๋ก ํด๊ฒฐํ๋ฉฐ, ์๊ฐ์ ๋ฆฌ์คํธ ๊ธธ์ด 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), ์ฌ๊ท ํธ์ถ ์คํ์ ํธ๋ฆฌ ๋์ด 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), ํ์ ํฌ๊ธฐ๋ ์ต์ ์ ๊ฒฝ์ฐ ์ ์ฒด ๋ ธ๋ ์์ ๋น๋กํ๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
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) |
ํผ๋๋ฐฑ: ํธ๋ฆฌ์ ๋ชจ๋ ๋ ธ๋๋ฅผ ์ํํ๋ฉฐ ๋ฌธ์์ด๋ก ๋ณํํ๋ค. ๋ ธ๋ ์ n์ ๋น๋กํ๋ ์๊ฐ๊ณผ ๊ณต๊ฐ์ด ์์๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 2: Codec.deserialize โ Time: O(n) / Space: O(n)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(n) |
ํผ๋๋ฐฑ: ๋ฌธ์์ด์ ๋ฐฐ์ด๋ก ๋ถํ ํ ์ฌ๊ท์ ์ผ๋ก ๋ ธ๋๋ฅผ ๋ณต์ํ๋ค. ๋ ธ๋ ์ n์ ๋น๋กํ๋ ์๊ฐ๊ณผ ๊ณต๊ฐ์ด ์์๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
๋ต์ ์ ์ถ ๋ฌธ์
์์ฑ์ ์ฒดํฌ ๋ฆฌ์คํธ
In Review๋ก ์ค์ ํด์ฃผ์ธ์.๊ฒํ ์ ์ฒดํฌ ๋ฆฌ์คํธ
Important
๋ณธ์ธ ๋ต์ ์ ์ถ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ๋ถ PR ํ๋ ์ด์์ ๋ฐ๋์ ๊ฒํ ๋ฅผ ํด์ฃผ์ ์ผ ํฉ๋๋ค!