[Chanz] WEEK 02 Solutions#2695
Conversation
Implement twoSum method to find indices of two numbers that add up to target.
Refactor two-sum solution to use a single loop for finding matches.
Implement isAnagram method to check if two strings are anagrams using a hashmap.
Implement memoization for climbing stairs problem.
Implement productExceptSelf method to calculate the product of array except self using two auxiliary lists.
๐ Chanz82 ๋์ ํ์ต ํํฉ์ด๋ฒ ์ฃผ ์ ์ถ ๋ฌธ์
๋์ ํ์ต ์์ฝ
๋ฌธ์ ํ์ด ํํฉ
๐ค ์ด ๋๊ธ์ GitHub App์ ํตํด ์๋์ผ๋ก ์์ฑ๋์์ต๋๋ค. ๐ข API ์ฌ์ฉ๋ (gpt-5-nano)
|
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Dynamic Programming, Memoization, Divide and Conquer
- ์ค๋ช : ํด๋น ์ฝ๋๋ ํผ๋ณด๋์น ๊ณ์ด์ ์ ํ์์ ๋์ ๊ณํ๋ฒ์ผ๋ก ํ๊ณ , ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํด ์ฌ๊ณ์ฐ์ ํผํ๋ ํํ๋ก ์์ฑ๋์ด ์์ต๋๋ค. ๋ฉ๋ชจ์ด์ ์ด์ ์ ํตํด ์ค๋ณต ๊ณ์ฐ์ ๋ฐฉ์งํ๋ฉฐ, ์ฌ๊ท ๋ถํ ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(n) |
ํผ๋๋ฐฑ: ๊ฐ n์ ๋ํด ํ ๋ฒ์ฉ ๊ณ์ฐํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ๋ชจ์ ์ ์ฅํ๋ฏ๋ก ์๊ฐ์ ์ ํ์ด๋ฉฐ, ์ฌ๊ท ๊น์ด๋ n๊น์ง ๊ฐ๋ฅํด ๊ณต๊ฐ๋ ์ ํ์ด๋ค.
๊ฐ์ ์ ์: ํธ์ถ ๊น์ด์ ๋ฐ๋ฅธ ์คํ ์ฌ์ฉ์ ํผํ๊ณ ๋ฐ๋ณต/ํ์์ผ๋ก ๋ณํํ๋ฉด ์คํ ์ค๋ฒํ๋ก๋ฅผ ์ค์ผ ์ ์๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๊ณต๊ฐ๋ณต์ก๋ ๋ง๊ธด ํ์ ๋ฐ, ์ฌ๊ท๋ฅผ ํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์คํ์ Function call์ด ๊ณ์ ์์ด๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ ์ฐ๋๊ฒ๋ณด๋จ ์ข์ง ์์๊ฑฐ์์!
์ฌ์ด๊ฒ๋ถํฐ ๋ฐํ ์ ์ผ๋ก ๊ตฌํํ์๋๊ฒ๋ ์ ๋ DP๋ฅผ ๊ณต๋ถํ๊ธฐ ์ข์ ์ ํ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Two Pointers, Dynamic Programming, Hash Map / Hash Set, Greedy, Divide and Conquer, Binary Search, Monotonic Stack, Breadth-First Search, Depth-First Search, Backtracking, Union Find, Trie, Bit Manipulation, Heap / Priority Queue
- ์ค๋ช : ์ฃผ์ด์ง ํด๊ฒฐ์ฑ ์ ๊ฐ ์์น์ ๊ณฑ์ ์ข์ฐ ๋์ ๊ณฑ์ผ๋ก ๊ตฌํ๋ ๋ฐฉ์์ผ๋ก, ์ค๊ฐ์ ๋ณด์กฐ ๋ฐฐ์ด(left, right)์ ์ฌ์ฉํด ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ๊ตฌ์กฐ์ด๋ค. ์ด๋ ๋ฐฐ์ด ๊ธฐ๋ฐ์ ๋์ ๊ฒฐ๊ณผ๋ฅผ ์ด์ฉํ๋ ํจํด์ผ๋ก, ๋์ด๋๋ DP์ ์ฌ๊ณ ์ ํจ๊ป ๋ถ๋ถ ๋ฌธ์ ๋ฅผ ๊ฒฐํฉํ๋ค๋ ์ ์์ Dynamic Programming์ applying ํํ๋ก ํด์ํ ์ ์๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(n) |
ํผ๋๋ฐฑ: ์ถ๊ฐ ๋ฐฐ์ด left์ right๋ฅผ ์ฌ์ฉํด ๊ฐ ์์์ ๋ํด O(1) ์ถ๊ฐ ์ฐ์ฐ์ผ๋ก ๊ฒฐ๊ณผ๋ฅผ ์ป๋๋ค.
๊ฐ์ ์ ์: ์ถ๊ฐ ๊ณต๊ฐ ์์ด ๊ฒฐ๊ณผ ๋ฐฐ์ด ํ๋๋ง ์ฌ์ฉํ๋๋ก ์์ถ ๊ฐ๋ฅํ๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
Follow up ์ ๊ณต๊ฐ๋ณต์ก๋ O(1)๋ก ํด๊ฒฐํด ๋ณด๋ผ๋๊ฒ ์์ด์์ ( ์ถ๋ ฅ ๋ฐฐ์ด 1๊ฐ ์ ์ธ )
ํ๋ฒ ์๋ํด ๋ณด์๋๊ฒ๋ ์ข์๊ฒ ๊ฐ์์!
ํํธ๋ left, right ์ด ๋๊ฐ๋ ์ฌ์ค ๋ฐฐ์ด์ด ์๋์ฌ๋ ๋ฉ๋๋ค!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Hash Map / Hash Set, Two Pointers
- ์ค๋ช : ๋ ๋ฌธ์์ด์ ๋ฌธ์๊ฐ ๊ฐ์์ง ํ์ธํ๊ธฐ ์ํด ๋ฌธ์ ๋น๋์๋ฅผ ํด์๋งต์ผ๋ก ์ธ๊ณ , t์ ๋ฌธ์๊ฐ ๋ํ๋ ๋๋ง๋ค ๊ฐ์์ํค๋ฉฐ ๋จ์ ๊ฐ์๋ฅผ ํ์ธํฉ๋๋ค. ํด์๋งต์ ์ด์ฉํ ์นด์ดํ ๋ฐฉ์์ ํจํด์ผ๋ก ๋ถ๋ฅ๋๊ณ , ๋ ๋ฌธ์์ด์ ํฉ์น๋ฉด์ ๋น๊ตํ๋ ํ๋ฆ์ด ํฌํจ๋์ด ์์ด ๋ ํจํด์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n + m) |
| Space | O(k) |
ํผ๋๋ฐฑ: ๋ ๋ฌธ์์ด ๊ธธ์ด์ ๋น๋กํ๋ ์ ํ ์๊ฐ๊ณผ ์ํ๋ฒณ ํฌ๊ธฐ์ ๋น๋กํ๋ ๊ณต๊ฐ์ ์ฌ์ฉํ๋ค.
๊ฐ์ ์ ์: ๋ชจ๋ ๋ฌธ์๊ฐ ASCII์ธ ๊ฒฝ์ฐ ๋ฐฐ์ด ์ธ๋ฑ์ค ๊ธฐ๋ฐ ๊ตฌํ์ผ๋ก ์์ ๊ณต๊ฐ์ ๊ทผ์ ๊ฐ๋ฅํ๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
๋ต์ ์ ์ถ ๋ฌธ์
์์ฑ์ ์ฒดํฌ ๋ฆฌ์คํธ
In Review๋ก ์ค์ ํด์ฃผ์ธ์.๊ฒํ ์ ์ฒดํฌ ๋ฆฌ์คํธ
Important
๋ณธ์ธ ๋ต์ ์ ์ถ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ๋ถ PR ํ๋ ์ด์์ ๋ฐ๋์ ๊ฒํ ๋ฅผ ํด์ฃผ์ ์ผ ํฉ๋๋ค!