[jaekwang97] WEEK 02 Solutions#2691
Conversation
namuuCY
left a comment
There was a problem hiding this comment.
์ฐ์ ์ง๊ธ ํ๋ฆฐ ๋ฌธ์ ๋ค๊น์ง์ ๋ฆฌ๋ทฐ๋ฅผ ๋ฌ์๋์์ต๋๋ค!
| class Solution { | ||
| public int climbStairs(int n) { | ||
| int[] dp = new int[n + 1]; | ||
| if (n <= 3) return n; | ||
| dp[1] = 1; | ||
| dp[2] = 2; | ||
| dp[3] = 3; | ||
|
|
||
| for (int i = 4; i <= n; i++) { | ||
| dp[i] = dp[i - 1] + dp[i - 2]; | ||
| } | ||
|
|
||
| return dp[n]; | ||
| } | ||
| } |
There was a problem hiding this comment.
DP ์ ์์ ์ธ ํ์ด๋๋ก ์ ํ์ ๊ฒ ๊ฐ์ต๋๋ค!
๋ค๋ง
- ๋ช ๋ฒ์งธ ํญ์ด ์ด๊ธฐํญ์ด๊ณ , ์ดํ ์ด๋ ํญ๋ถํฐ ์ ํ์์ด ์ ์ฉ๋๋์ง ๋ค์ ํ๋ฒ ์ดํด๋ณด์๋ ๊ฒ๋ ์ข์๊ฒ ๊ฐ์ต๋๋ค.
- ์ง๊ธ ์ด ํ์ด์์๋ n ์ดํ์ ๋ชจ๋ ๊ฐ์ ๋ค ์ ์ฅํ๊ณ ์๋๋ฐ, ๊ตณ์ด ๋ค ์ ์ฅํ ํ์๊ฐ ์์๊น์? ์ ์ฅํ์ง ์๋ ํ์ด๋ ํ๋ฒ ์๊ฐํด๋ณด์๋๊ฑฐ ์ด๋จ๊น์?
There was a problem hiding this comment.
๋ฆฌ๋ทฐ ๊ฐ์ฌํฉ๋๋ค!
๋ง์ํด์ฃผ์ ๊ฒ์ฒ๋ผ ์ง์ ๋ ๊ฐ๋ง ์์ผ๋ฉด ๋ค์ ๊ฐ์ ๊ณ์ฐํ ์ ์์ด์, ์ ์ฒด dp ๋ฐฐ์ด์ ์ ์ฅํ์ง ์๋ ๋ฐฉ์์ผ๋ก ์์ ํด๋ดค์ต๋๋ค. ์ด๊ธฐํญ๋ n <= 2๋ฅผ ๋จผ์ ์ฒ๋ฆฌํ๊ณ , ์ดํ์๋ prev, cur ๋ ๋ณ์๋ก ์ ํ์ ํ๋ฆ์ด ๋ณด์ด๋๋ก ์ ๋ฆฌํ์ต๋๋ค.
| import java.util.*; | ||
|
|
||
| class Solution { | ||
| public int[] productExceptSelf(int[] nums) { | ||
| int n = nums.length; | ||
| int[] right = new int[n + 1]; | ||
| int[] left = new int[n + 1]; | ||
|
|
||
| right[0] = 1; | ||
| for (int i = 1; i <= n; i++) { | ||
| right[i] = right[i - 1] * nums[i - 1]; | ||
| } | ||
|
|
||
| left[n] = 1; | ||
| for (int i = n - 1; i >= 0; i--) { | ||
| left[i] = left[i + 1] * nums[i]; | ||
| } | ||
|
|
||
| int[] answer = new int[n]; | ||
| for (int i = 0; i < n; i++) { | ||
| answer[i] = right[i] * left[i + 1]; | ||
| } | ||
|
|
||
| return answer; | ||
| } | ||
| } |
There was a problem hiding this comment.
์ ๋ ์ฒ์์ ์๋ชป๋ ํ์ด(๋๋์
์ ์ฌ์ฉํ)๋ก ํ์์๋๋ฐ,
@JAEKWANG97 ๋ ํ์ด๋ฅผ ๋ณด๊ณ ์ ๊ฐ ํ๋ ธ๋ค๋๊ฑธ ์๊ฒ๋์ด์.
There was a problem hiding this comment.
๊ฐ์ฌํฉ๋๋ค!
์ ๋ ์ฒ์์๋ ์ ์ฒด ๊ณฑ์ ๊ตฌํด์ ๋๋๋ ๋ฐฉ์์ ๋จผ์ ๋ ์ฌ๋ ธ๋๋ฐ, ๋ฌธ์ ์กฐ๊ฑด ๋๋ฌธ์ ์ผ์ชฝ ๋์ ๊ณฑ๊ณผ ์ค๋ฅธ์ชฝ ๋์ ๊ณฑ์ ๋ฐ๋ก ๊ณ์ฐํ๋ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ์ต๋๋ค. ์ด๋ ๊ฒ ๋๋๋ฉด 0์ด ํฌํจ๋ ์ผ์ด์ค๋ ์์ฐ์ค๋ฝ๊ฒ ์ฒ๋ฆฌ๋ผ์ ์ข์๋ ๊ฒ ๊ฐ์ต๋๋ค.
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Two Pointers, Binary Search, Hash Map / Hash Set
- ์ค๋ช : ์ ๋ ฌ ํ ์ข์ฐ ํฌ์ธํฐ๋ฅผ ์ด์ฉํ ํฉ ํ์์ผ๋ก 3ํฉ์ ์ฐพ๋ ๋ํ์ ํจํด์ด๋ค. ์ค๋ณต ์ ๊ฑฐ๋ฅผ ์ํด ํด์ ์ธํธ์ ์คํต ๋ก์ง์ด ์ฌ์ฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n^2) |
| Space | O(n) |
ํผ๋๋ฐฑ: ์ ๋ ฌ ๋ฐ ํฌ ํฌ์ธํฐ๋ฅผ ์ด์ฉํด ๋ชจ๋ 3์ ํฉ์ด 0์ธ ๊ฒฝ์ฐ๋ฅผ ์ฐพ๊ณ ์ค๋ณต์ ์ ๊ฑฐํฉ๋๋ค. ํด์ ์ ์ ์ฌ์ฉํด ์ค๋ณต ์ ๊ฑฐ๋ฅผ ๋ฌ์ฑํ์ง๋ง ์ต์ ์ ๊ฒฝ์ฐ ์ถ๊ฐ ๊ณต๊ฐ์ด ํ์ํฉ๋๋ค.
๊ฐ์ ์ ์: ๊ณ ๋ คํด๋ณผ ๋งํ ๋์: ์ค๋ณต ์ ๊ฑฐ๋ฅผ Set ๋์ ๋ก์ง์ผ๋ก๋ง ์ฒ๋ฆฌํด ๋ถํ์ํ ํด์ ์ฌ์ฉ์ ์ค์ด๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์ฆ์ ์ค๋ณต ์ ๊ฑฐ๋ ๋ฆฌ์คํธ์ ์ถ๊ฐํ๋๋ก ๊ตฌํํด๋ ๋ฉ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Dynamic Programming, Greedy
- ์ค๋ช : ํด๋ผ์ด๋ฐ ์คํ ๋ฌธ์ ๋ ๊ฐ ๋จ๊ณ์ ๊ฒฝ์ฐ์ ์๋ฅผ ์ด์ ๋ ๋จ๊ณ์ ํฉ์ผ๋ก ๊ตฌํ๋ ํํ๋ก, DP์ ์ ํ์์ ์ด์ฉํ ์ ํ์ ์ธ ํ์ด์ ๋๋ค. ๊ฐ๋จํ ์ต์ ํ๋ก ๋ฐฐ์ด ์์ด ์ํ๋ง ์ ์งํ๋ ๋ฐฉ์๋ DP์ ํ ํํ๋ก ํด์๋ฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(1) |
ํผ๋๋ฐฑ: ์ด๊ธฐ๊ฐ์ ์ค์ ํ ๋ค ์ํํ๋ฉด์ ํ์ฌ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ฐฑ์ ํฉ๋๋ค. ์์ ๊ณต๊ฐ์ผ๋ก ๊ตฌํ๋ผ ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ด ์์ต๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Two Pointers, Sliding Window, Monotonic Stack, Hash Map / Hash Set, Greedy, Divide and Conquer, Dynamic Programming, Binary Search, Union Find, Trie, Bit Manipulation, BFS, DFS, Backtracking, Heap / Priority Queue
- ์ค๋ช : ๋ ๋ฐฐ์ด ํจํด ์์ด๋ ์ผ์ชฝ/์ค๋ฅธ์ชฝ ๋์ ๊ณฑ์ ์ด์ฉํ๋ ํจํด์ผ๋ก, Right-Left ๋์ ๊ณฑ ๋ฐฐ์ด์ ๋ง๋ค์ด ์ ๋ต์ ๊ตฌํ๋ ๋ฐฉ์์ด๋ค. ์ด๋ DP์ ๋ถ๋ถ ๋ฌธ์ ์ฌ์ฌ์ฉ๊ณผ ๊ฐ์ ๋์ ๊ณฑ(์ ๋ฌ ๋ณ์) ํ์ฉ์ผ๋ก ๋ณผ ์ ์๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(n) |
ํผ๋๋ฐฑ: ์ผ์ชฝ ๋์ ๊ณฑ๊ณผ ์ค๋ฅธ์ชฝ ๋์ ๊ณฑ ๋ฐฐ์ด์ ๋ง๋ค์ด ๊ฐ ์ธ๋ฑ์ค์ ๊ฒฐ๊ณผ๋ฅผ ๊ณฑ์ผ๋ก ๊ตฌํฉ๋๋ค. ์ถ๊ฐ ๋ฐฐ์ด ์ฌ์ฉ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ด ์ฆ๊ฐํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌ์กฐ๋ ์ ์ ํ์ง๋ง ๊ณต๊ฐ ์ ๊ฐ์ ์ํ๋ฉด ๋ ๋ฐฐ์ด ๋์ ํ๋์ ๊ฒฐ๊ณผ ๋ฐฐ์ด๊ณผ ์์ ๋ณ์๋ก ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๊ณ ๋ คํด๋ณผ ์ ์์ต๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Hash Map / Hash Set, Bit Manipulation
- ์ค๋ช : ๋ ๋ฌธ์์ด์ ๋ฌธ์ ๋ฑ์ฅ ํ์๋ฅผ ๋ฐฐ์ด๋ก ์นด์ดํธํ์ฌ ๋น๊ตํ๋ ๋ฐฉ์์ผ๋ก ํด์ ๋งต/์ธํธ ์์ด๋ ๋ฑ์ฅ ์ฌ๋ถ๋ฅผ ํ๋จํ๋ค. ๋ฐฐ์ด ์ธ๋ฑ์ค๋ ๋ฌธ์ ๊ฐ ์ฐจ์ด๋ก ๋งคํ๋๋ฉฐ, 26 ์ํ๋ฒณ ๊ณ ์ ํฌ๊ธฐ ์นด์ดํธ๋ฅผ ์ด์ฉํ ์ฐจ๊ฐ์ผ๋ก ์ค๋ณต ์ฌ๋ถ๋ฅผ ํ์ธํ๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(1) |
ํผ๋๋ฐฑ: ๊ณ ์ ํฌ๊ธฐ ๋ฐฐ์ด(26)๋ก ๋ฌธ์ ๋น๋๋ฅผ ๊ณ์ฐํ์ฌ ๋น๊ตํฉ๋๋ค. ์ ๋ ฅ ๋ฌธ์์ด์ ๊ธธ์ด์ ๋น๋กํ๋ ์๊ฐ๊ณผ ์์ ๊ณต๊ฐ์ ๊ฐ์ง๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Binary Search, Depth-First Search, Depth-First Search
- ์ค๋ช : BST ์ ํจ์ฑ ๊ฒ์ฌ์์ ๊ฐ ๋ ธ๋๋ฅผ ๋ฒ์๋ก ์ ์ฝํ๋ฉฐ ์ข์ฐ ์๋ธํธ๋ฆฌ์ ์ฌ๊ท์ ์ผ๋ก ์กฐ๊ฑด์ ํ์ธํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ๋์ด ์์ต๋๋ค. ํธ๋ฆฌ๋ฅผ ๊น์ด ์ฐ์ ํ์ํ๋ฉฐ ๊ฐ ๋ ธ๋์ ๊ฐ์ด ํ์ฉ๋ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ฉด ๋ถ๋ฆฌ์ธ์ ๋ฐํํฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(h) |
ํผ๋๋ฐฑ: ๊ฐ ๋ ธ๋์ ๋ํด ์ต์/์ต๋ ์ ํจ ๋ฒ์๋ฅผ ์ ์งํ๊ณ ์ฌ๊ท์ ์ผ๋ก ๊ฒ์ฌํฉ๋๋ค. ์ต์ ์ ๊ฒฝ์ฐ ํธ๋ฆฌ์ ๋์ด์ ๋ฐ๋ผ ๊ณต๊ฐ ๋ณต์ก๋๊ฐ ์ฆ๊ฐํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
๋ต์ ์ ์ถ ๋ฌธ์
์์ฑ์ ์ฒดํฌ ๋ฆฌ์คํธ
In Review๋ก ์ค์ ํด์ฃผ์ธ์.๊ฒํ ์ ์ฒดํฌ ๋ฆฌ์คํธ
Important
๋ณธ์ธ ๋ต์ ์ ์ถ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ๋ถ PR ํ๋ ์ด์์ ๋ฐ๋์ ๊ฒํ ๋ฅผ ํด์ฃผ์ ์ผ ํฉ๋๋ค!