[jaekwang97] WEEK 02 Solutions#2691
Conversation
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Dynamic Programming
- ์ค๋ช : climbStairs ๋ฌธ์ ๋ฅผ ํผ๋ณด๋์น ์์ด ํํ๋ก DP ๋ฐฐ์ด์ ์ด์ฉํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ํ์ ๋ฌธ์ ์ ํด๋ฅผ ์ด์ฉํด ์์ ๋ฌธ์ ์ ํด๋ฅผ ๊ณ์ฐํ๋ ์ ํ์ ์ธ DP ํจํด์ ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(n) |
ํผ๋๋ฐฑ: ๋์ ๊ณํ๋ฒ์ผ๋ก k๋ฒ์งธ ๊ณ๋จ ์๋ฅผ ์ด์ ๋ ๊ณ๋จ์ ํฉ์ผ๋ก ๊ณ์ฐํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Two Pointers, Dynamic Programming, Hash Map / Hash Set
- ์ค๋ช : ๋ฐฐ์ด์ ์ผ์ชฝ/์ค๋ฅธ์ชฝ ๋์ ๊ณฑ์ ๋ฏธ๋ฆฌ ๊ณ์ฐํด ๊ฐ ์์๋ฅผ ์ ์ธํ ๊ณฑ์ ๊ตฌํ๋ ๋ฐฉ์์ผ๋ก, ์ค๊ฐ์ ์์ ๋ฐฐ์ด์ ๋๊ณ ๋ถ๋ถํด๋ฅผ ํฉ์ฑํ๋ DP-like ์ ์ฒ๋ฆฌ ํจํด์ ๋๋ค. ๋ ํฌ์ธํฐ๋ก ์ํ๋ฅผ ์ด์ฉํ ์ต์ ํ๋ ์๋์ง๋ง, ๋ถ๋ถ๊ตฌ๊ฐ์ ๋์ ์ ๋ณด๋ฅผ ์ด์ฉํ๋ค๋ ์ ์์ DP ๊ณ์ด์ ์ํฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n) |
| Space | O(n) |
ํผ๋๋ฐฑ: ์ผ์ชฝ/์ค๋ฅธ์ชฝ ๋์ ๊ณฑ ๋ฐฐ์ด์ ๋ง๋ค์ด ๊ฐ ์์น์ ๊ฒฐ๊ณผ๋ฅผ ๊ณฑํด ๊ตฌํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Hash Map / Hash Set, Bit Manipulation
- ์ค๋ช : ๋ ๋ฌธ์์ด์ ๋ฌธ์ ๋ฑ์ฅ ํ์๋ฅผ ๋น๊ตํ๊ธฐ ์ํด ๋ฐฐ์ด๋ก ์นด์ดํธ๋ฅผ ์ธ๊ณ ์ฐจ์ด๋ฅผ ๊ฒ์ฌํ๋ ๋ฐฉ์์ผ๋ก ํด์ ๋งต/์ธํธ์ ์ญํ ์ ์ํํ๋ ํจํด์ ์ํฉ๋๋ค. ๋ํ ๋ฌธ์ ์ธ๋ฑ์ค ๊ณ์ฐ์ ๊ฐ์ ์ ์ผ๋ก ๋นํธ ์ฐ์ฐ๊ณผ ์ ์ฌํ ์์ ์๊ฐ ์ ๊ทผ์ ํ์ฉํฉ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n + m) |
| Space | O(1) |
ํผ๋๋ฐฑ: ๊ณ ์ ํฌ๊ธฐ์ ์นด์ดํธ ๋ฐฐ์ด๋ก ๊ฐ ๋ฌธ์์ ์ฐจ์ด๋ฅผ ๋ฐ์ํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
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 ์ดํ์ ๋ชจ๋ ๊ฐ์ ๋ค ์ ์ฅํ๊ณ ์๋๋ฐ, ๊ตณ์ด ๋ค ์ ์ฅํ ํ์๊ฐ ์์๊น์? ์ ์ฅํ์ง ์๋ ํ์ด๋ ํ๋ฒ ์๊ฐํด๋ณด์๋๊ฑฐ ์ด๋จ๊น์?
| 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 ๋ ํ์ด๋ฅผ ๋ณด๊ณ ์ ๊ฐ ํ๋ ธ๋ค๋๊ฑธ ์๊ฒ๋์ด์.
๋ต์ ์ ์ถ ๋ฌธ์
์์ฑ์ ์ฒดํฌ ๋ฆฌ์คํธ
In Review๋ก ์ค์ ํด์ฃผ์ธ์.๊ฒํ ์ ์ฒดํฌ ๋ฆฌ์คํธ
Important
๋ณธ์ธ ๋ต์ ์ ์ถ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ๋ถ PR ํ๋ ์ด์์ ๋ฐ๋์ ๊ฒํ ๋ฅผ ํด์ฃผ์ ์ผ ํฉ๋๋ค!