[okyungjin] WEEK 03 Solutions#2711
Conversation
๐ okyungjin ๋์ ํ์ต ํํฉ์ด๋ฒ ์ฃผ ์ ์ถ ๋ฌธ์
๋์ ํ์ต ์์ฝ
๋ฌธ์ ํ์ด ํํฉ
๐ค ์ด ๋๊ธ์ GitHub App์ ํตํด ์๋์ผ๋ก ์์ฑ๋์์ต๋๋ค. ๐ข API ์ฌ์ฉ๋ (gpt-5-nano)
|
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Backtracking
- ์ค๋ช : ํฉ์ด target๊ณผ ์ผ์นํ๋ ์กฐํฉ์ ํ์ํ๊ณ , ์กฐ๊ฑด์ ๋ง์ผ๋ฉด ๊ฒฐ๊ณผ์ ์ถ๊ฐํ๋ ๋ฐฉ์์ผ๋ก ๋ชจ๋ ๊ฐ๋ฅํ ์กฐํฉ์ ์ฌ๊ท์ ์ผ๋ก ์๋ํ๋ค. ๊ฐ ์ฌ๊ท์์ ์ ํ ๊ฐ๋ฅํ ํ๋ณด๋ฅผ ํ๋์ฉ ์๋ํ๊ณ ๋ฐํ์ ์ํ๋ฅผ ๋๋๋ฆฌ๋ ๋ฐฑํธ๋ํน ํจํด์ด๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
โน๏ธ ์ด ํ์ผ์๋ 2๊ฐ์ง ํ์ด๊ฐ ํฌํจ๋์ด ์์ด ๊ฐ๊ฐ ๋ถ์ํฉ๋๋ค.
ํ์ด 1: Solution_01.combinationSum โ Time: O(n^k) / Space: O(k)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n^k) |
| Space | O(k) |
ํผ๋๋ฐฑ: ๋ฐฑํธ๋ํน์ผ๋ก ๋ชจ๋ ๊ฐ๋ฅํ ์กฐํฉ์ ํ์ํ๊ณ , ์ค๋ณต ์กฐํฉ ์์ฑ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์์ ์ธ๋ฑ์ค๋ฅผ ๊ณ ์ ํ์ต๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ํ์ด 2: Solution.combinationSum โ Time: O(n^k) / Space: O(k)
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n^k) |
| Space | O(k) |
ํผ๋๋ฐฑ: ๋ ๋ฒ์งธ ๊ตฌํ์ ๋งค ์ฌ๊ท์์ ๋ถํ์ํ ๋ฆฌ์คํธ ๋ณต์ฌ๋ฅผ ์ค์ฌ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ๊ฐ์ ํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Bit Manipulation
- ์ค๋ช : ์ฃผ์ด์ง ์ฝ๋๋ ๋นํธ ์ฐ์ฐ์ ์ด์ฉํด 2์ง์์์ 1์ ๊ฐ์๋ฅผ ์ธ๋ ๋ฐฉ์์ผ๋ก, n & 1๋ก ํ์ฌ ๋นํธ๋ฅผ ํ์ธํ๊ณ n >> 1๋ก ํ ์๋ฆฌ์ฉ ์ด๋์ํค๋ ๋นํธ ์กฐ์ ํจํด์ ์ฌ์ฉํฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(number_of_bits) |
| Space | O(1) |
ํผ๋๋ฐฑ: ๋นํธ๋ฅผ ํ๋์ฉ ํ์ธํ๋ฉฐ 1์ ๊ฐ์๋ฅผ ๋์ ํฉ๋๋ค. ๊ฐ๋จํ๊ณ ์ง๊ด์ ์ ๋๋ค.
๊ฐ์ ์ ์: ํ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Two Pointers, Greedy
- ์ค๋ช : ๋ฌธ์์ด ์ ๋์ ํฌ์ธํฐ๋ฅผ ๋๊ณ , ์ํ๋ฒณ/์ซ์๋ง ํ์ธํ๋ฉฐ ์ข์ฐ๋ก ์ด๋์ํค๋ ๋ฐฉ์์ผ๋ก ์กฐ๊ฑด์ ๊ฒ์ฌํ๋ค. ์ ํ์ ์ธ ํฌ ํฌ์ธํฐ ํจํด์ด๋ฉด์, ์ ์ฌํ๊ฒ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฌธ์๋ฅผ ์ฐพ์ผ๋ฉฐ ์ฆ์ ํ๋จํ๋ ๊ตฌ์ฑ์ด Greedy์ ์ง๊ด๊ณผ๋ ๋ง๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ์ ์ ๋ถ์ | ์ค์ ๋ถ์ | ๊ฒฐ๊ณผ | |
|---|---|---|---|
| Time | O(N) | O(n) | โ |
| Space | O(1) | O(1) | โ |
ํผ๋๋ฐฑ: ๋ ํฌ์ธํฐ๋ฅผ ํ์ฉํด ํ์ํ ๋ฌธ์๋ง ๋น๊ตํ๊ณ ๋ถํ์ํ ๋ฌธ์์ด ์ ์ฒ๋ฆฌ๋ฅผ ํผํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
ICE0208
left a comment
There was a problem hiding this comment.
์ฝ๋๊ฐ ์ง๊ด์ ์ด๊ณ ์ฃผ์๋ ์์ธํ๊ฒ ์์ฑ๋์ด ์์ด ๋น ๋ฅด๊ฒ ๋ฆฌ๋ทฐํ ์ ์์์ต๋๋ค!
์ด๋ฒ ์ฃผ๋ ๊ณ ์ ๋ง์ผ์ จ๊ณ , ๋ค์ ์ฃผ ๋ฌธ์ ํ์ด๋ ํ์ดํ ์ ๋๋ค! ๐
| # ์ ํ์ด์ ๊ฑฐ์ ์ ์ฌํ๋ค. | ||
| # ๋ฐฑํธ๋ํน์์ ๋ฐฐ์ด์ด ๋งค๋ฒ ๊น์ ๋ณต์ฌ๋๋ ๋นํจ์จ์ด ์์ด์ result ๋ฐฐ์ด์ ๋ด์ ๋๋ง ๋ณต์ฌํ๋๋ก ํ๋ค. | ||
| class Solution: | ||
| def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]: |
There was a problem hiding this comment.
์ฃผ์์ ๋ฐฐ์ด์ด ๋งค๋ฒ ๊น์ ๋ณต์ฌ๋๋ ๋นํจ์จ์ ๊ฐ์ ํ๋ค๊ณ ์ ํ ์๋๋ฐ, ์ฒซ ๋ฒ์งธ ํ์ด์์ ์ค์ ๋ก ๊น์ ๋ณต์ฌ๊ฐ ๋ฐ์ํ๋ ๋ถ๋ถ์ด ์ด๋์ธ์ง ๊ถ๊ธํฉ๋๋ค!
ํน์ combination + [num]์์ ๋งค๋ฒ ์๋ก์ด ๋ฆฌ์คํธ๊ฐ ์์ฑ๋๋ ๋น์ฉ์ ๊น์ ๋ณต์ฌ๋ผ๊ณ ํํํ์ ๊ฑธ๊น์? ๐
There was a problem hiding this comment.
์์ ๋ณต์ฌ๋ผ๊ณ ์ ์ด์ผ ํ๋๋ฐ ๊น์ ๋ณต์ฌ๋ผ๊ณ ์๋ชป ์ ์์ต๋๋ค.
dfs ์ฌ๊ท ํธ์ถ ์์ ๋งค๋ฒ ์๋ก์ด ๋ฆฌ์คํธ๊ฐ ์์ฑ๋๋ ๋น์ฉ์ ํํํ๊ฒ ๋ง์ต๋๋ค!
๋ต์ ์ ์ถ ๋ฌธ์
์ด๋ฒ ์ฃผ๋ ์ผ์ ์ด ์์ด์ 3๋ฌธ์ ๋ง ํ์์ต๋๋ค.
์์ฑ์ ์ฒดํฌ ๋ฆฌ์คํธ
In Review๋ก ์ค์ ํด์ฃผ์ธ์.๊ฒํ ์ ์ฒดํฌ ๋ฆฌ์คํธ
Important
๋ณธ์ธ ๋ต์ ์ ์ถ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ๋ถ PR ํ๋ ์ด์์ ๋ฐ๋์ ๊ฒํ ๋ฅผ ํด์ฃผ์ ์ผ ํฉ๋๋ค!