[dahyeong-yun] WEEK 02 solutions#2684
Conversation
๐ dahyeong-yun ๋์ ํ์ต ํํฉ์ด๋ฒ ์ฃผ ์ ์ถ ๋ฌธ์
๋์ ํ์ต ์์ฝ
๋ฌธ์ ํ์ด ํํฉ
๐ค ์ด ๋๊ธ์ GitHub App์ ํตํด ์๋์ผ๋ก ์์ฑ๋์์ต๋๋ค. ๐ข API ์ฌ์ฉ๋ (gpt-5-nano)
|
parkhojeong
left a comment
There was a problem hiding this comment.
์๊ณ ํ์
จ์ต๋๋ค! ๋ช ๊ฐ์ง ์ปค๋ฉํธ ๋จ๊ฒผ์ต๋๋ค :)
validate-binary-search-tree๊ฐ ์๋ชป ์ฌ๋ผ์ ์์ด์ request changes ๋จ๊น๋๋ค!
| if(n == 1) return 1; | ||
| if(n == 2) return 2; | ||
|
|
||
| int[] steps = new int[n+1]; | ||
| steps[1] = 1; | ||
| steps[2] = 2; | ||
|
|
||
| for(int i=3; i<=n; i++) { | ||
| steps[i] = steps[i-1] + steps[i-2]; | ||
| } | ||
| return steps[n]; | ||
| } |
There was a problem hiding this comment.
๊ฐ๋ ์ฑ ์ข์ ์ฝ๋์ธ ๊ฑฐ ๊ฐ์ต๋๋ค!
| public boolean isAnagram(String s, String t) { | ||
| char[] arrayS = s.toCharArray(); | ||
| char[] arrayT = t.toCharArray(); | ||
|
|
||
| Arrays.sort(arrayS); | ||
| Arrays.sort(arrayT); | ||
|
|
||
| return Arrays.equals(arrayS, arrayT); | ||
| } |
There was a problem hiding this comment.
n log(n) ์ ๋ณต์ก๋๋ฅผ ๋น๋ ์นด์ดํธ๋ฅผ ์ด์ฉํด ๊ฐ์ ํด๋ณผ ์๋ ์์ ๊ฑฐ ๊ฐ์ต๋๋ค!
There was a problem hiding this comment.
๋น๋ ์นด์ดํธ๋ฅผ ์ด์ฉํด์ ๊ฐ์ ํ๋ค๋ ์๋ฏธ์ ๊ฑฐ์ฃ ? ๋ง์์ฃผ์ ๋๋ก ๋ฌธ์์ด์ Character ๋จ์๋ก ๋น๋ ์นด์ดํธ ํ๋ ๋ฐฉ๋ฒ๋ ์๊ฒ ๋ค์.
| int prefix = 1; | ||
| int suffix = 1; | ||
|
|
||
| int len = nums.length; | ||
| int[] answer = new int[len]; | ||
|
|
||
| answer[0] = 1; | ||
| for(int i = 1; i < len; i++) { | ||
| answer[i] = prefix * nums[i-1]; | ||
| prefix *= nums[i-1]; | ||
| } | ||
|
|
||
| for(int i = len-1; i >= 0; i--) { | ||
| answer[i] = answer[i] * suffix; | ||
| suffix *= nums[i]; | ||
| } |
There was a problem hiding this comment.
prefix, suffix์ ๋ณ์๋ช
์ด ๊ฐ์ด ์ง๊ด์ ์ด์ง๋ ์์์ ๊ฐ์ ์๋ฏธ๋ฅผ ๋ด์ผ๋ฉด ์ข์ ๊ฑฐ ๊ฐ์ต๋๋ค!
์ฐธ๊ณ ๋ก answer์ ์ด์ฉํด์ prefix ์ ๊ฑฐํ๋ ๊ฒ๋ ๊ฐ๋ฅํ ๊ฑฐ ๊ฐ์ต๋๋ค~
| for(int i=0; i < nums.length - 2; i++) { | ||
| if (i > 0 && nums[i] == nums[i - 1]) { | ||
| continue; | ||
| } | ||
|
|
There was a problem hiding this comment.
nums[i] > 0 ์ธ ๋ถ๋ถ๋ถํฐ๋ ์์ + ์์ + ์์ ๊ฐ ๋์ ์ด ์กฐ๊ฑด๋ ๊ณ ๋ คํด๋ณด์๋ฉด ์ข์ ๊ฑฐ ๊ฐ์ต๋๋ค!
ex: [-2, -1, 0, 1, 2, 3, 4, 5, 6, 7]
There was a problem hiding this comment.
| for(int i=0; i < nums.length - 2; i++) { | |
| if (i > 0 && nums[i] == nums[i - 1]) { | |
| continue; | |
| } | |
| for(int i=0; i < nums.length - 2; i++) { | |
| if (nums[i] > 0) { | |
| break; | |
| } | |
| if (i > 0 && nums[i] == nums[i - 1]) { | |
| continue; | |
| } | |
์ด๋ฐ ์์ผ๋ก ์กฐ๊ธฐ ์ข ๋ฃ๋ฅผ ํ ์ ์๊ฒ ๋ค์
| while(left < right) { | ||
| if(nums[i] + nums[left] + nums[right] == 0) { | ||
| List<Integer> triple = List.of(nums[i], nums[left], nums[right]); | ||
| answer.add(triple); | ||
| while(left+1 < right && nums[left] == nums[left+1]) left++; | ||
| while(right > 0 && nums[right] == nums[right-1]) right--; | ||
| left++; | ||
| right--; | ||
| } else if(nums[i] + nums[left] + nums[right] > 0) right--; | ||
| else left++; |
There was a problem hiding this comment.
while(left+1 < right ..), while(right > 0 ..) ์์ right > 0๋ left์ฒ๋ผ ํ๊ฐํ๋ ๊ฒ์ด ์ข์ ๊ฑฐ ๊ฐ์ต๋๋ค!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Two Pointers, Sorting, Hash Map / Hash Set
- ์ค๋ช : 3sum ๋ฌธ์ ์์ ๋จผ์ ๋ฐฐ์ด์ ์ ๋ ฌํ ๋ค ๊ณ ์ ์์ ๋ ํฌ์ธํฐ๋ก ๋๋จธ์ง ๋ ์๋ฅผ ์ฐพ๋ ๋ฐฉ์์ผ๋ก ์ค๋ณต ์ ๊ฑฐ์ ๋ชฉํ ํฉ 0 ๋ฌ์ฑ์ ์ํํฉ๋๋ค. ๊ณต๊ฐ์ ์์์ ๊ฐ๊น๊ณ ์๊ฐ๋ณต์ก๋๋ O(n^2)์ ๋๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ๋ณต์ก๋ | |
|---|---|
| Time | O(n^2) |
| Space | O(1) |
ํผ๋๋ฐฑ: ์ ๋ ฌ ํ ์์ ๊ณ ์ -ํฌํฌ์ธํฐ ํจํด์ผ๋ก ์ค๋ณต ์ ๊ฑฐ๋ฅผ ์ ์ฒ๋ฆฌํ๊ณ ์์ต๋๋ค. ๋ชจ๋ ๊ฐ๋ฅํ ์ผ์คํฉ์ ํ ๋ฒ์ฉ ํ์ํฉ๋๋ค.
๊ฐ์ ์ ์: ํ์ฌ ๊ตฌํ์ด ์ ์ ํด ๋ณด์ ๋๋ค.
๐ก ํ์ด์ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ณด์ธ์!
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Dynamic Programming
- ์ค๋ช : ๊ณ๋จ ์ ๋ฌธ์ ๋ฅผ ํผ๋ณด๋์นํ ์ ํ์์ผ๋ก ํด๊ฒฐํ๋ฉฐ, ์ด์ ๋จ๊ณ์ ๊ฒฐ๊ณผ๋ฅผ ์ด์ฉํด ํ์ฌ ๊ฐ์ ๊ตฌํ๋ ์ ํ์ ์ธ DP ํจํด์ด๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ์ ์ ๋ถ์ | ์ค์ ๋ถ์ | ๊ฒฐ๊ณผ | |
|---|---|---|---|
| Time | O(n) | O(n) | โ |
| Space | O(n) | O(n) | โ |
ํผ๋๋ฐฑ: ์ด๊ธฐ ๊ฒฝ๊ณ์กฐ๊ฑด์ ๋ช ํํ ๋๊ณ ์์ฐจ์ ์ผ๋ก ์ฑ์ ๋๊ฐ๋ DP ํ์ด์ ๋๋ค.
๊ฐ์ ์ ์: ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ์ค์ด๋ ค๋ฉด ๋ ๋ณ์๋ก ๋กค๋ง ๋ฐฐ์ด๋ก ๊ตฌํํ๋ ๋์์ ๊ณ ๋ คํด๋ณผ ์ ์์ต๋๋ค.
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Two Pointers, Dynamic Programming, Hash Map / Hash Set
- ์ค๋ช : ๋ ํจํด์ ํต์ฌ ์์ด๋์ด๋ ์ผ์ชฝ/์ค๋ฅธ์ชฝ ๋์ ๊ณฑ์ ๊ตฌํด ๊ฐ ์์๋ฅผ ์ ์ธํ ๊ณฑ์ ๊ตฌํ๋ ๋ฐฉ์์ด๋ค. ๋ฐฐ์ด์ ๋ ๋ฒ ์ํํ๋ฉฐ ์ ํ๊ณผ ํํ ๊ฐ์ ์ถ์ ํ๋ ๋ฐฉ์์ ์ต์ ํด๋ฅผ ์ป๋ ๋ค์ธต ๋์ ๊ณ์ฐ์ผ๋ก ๋ถ๋ฅํ ์ ์๋ค. ๋ํ ๋ฌธ์ ์ ๋ชฉํ๋ ๊ฐ ์์๋ฅผ ์ ์ธํ ๊ณฑ์ ๊ตฌํ๋ ๊ตฌ์กฐ๋ก DP์ ๋์ ๊ด๊ณ๋ฅผ ํ์ฉํ๋ ์์ด๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ์ ์ ๋ถ์ | ์ค์ ๋ถ์ | ๊ฒฐ๊ณผ | |
|---|---|---|---|
| Time | O(n) | O(n) | โ |
| Space | O(n) | O(1) | โ |
ํผ๋๋ฐฑ: ์ผ์ชฝ ๋์ ๊ณฑ๊ณผ ์ค๋ฅธ์ชฝ ๋์ ๊ณฑ์ ์ด์ฉํด ํ ๋ฐฐ์ด์์ ๋ชจ๋ ์์๋ฅผ ๊ตฌํฉ๋๋ค. ๊ณต๊ฐ์ ์์๋ก ์ค์ด๋ ๊ตฌํ๋ ๊ฐ๋ฅ
๊ฐ์ ์ ์: ์ถ๊ฐ์ ์ธ ์ต์ ํ๋ฅผ ์ํ๋ฉด ์ถ๋ ฅ ๋ฐฐ์ด ์์ฒด๋ฅผ ๊ณต๊ฐ์ผ๋ก ํ์ฉํ๋ ๋ฐฉ์์ด ์์ต๋๋ค.
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Time Complexity Analysis Pattern?
- ์ค๋ช : ์ ์๋ ์ฝ๋๋ ๋ ๋ฌธ์์ด์ ์ ๋ ฌํ ๋ค ๋น๊ตํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ ๋๊ทธ๋จ ์ฌ๋ถ๋ฅผ ํ๋ณํ๋ค. ์ด๋ ๋ ๋ฐฐ์ด ์ ๋ ฌ ํ ๋น๊ตํ๋ ๊ธฐ๋ณธ์ ์ธ ์์ด๋์ด์ด๋ฉฐ, ํจํด์ผ๋ก๋ ์ ๋ ฌ(Sort) ์์ฒด๋ฅผ ์ด์ฉํ ํด๊ฒฐ๊ณผ ๊ทธ์ ๋ฐ๋ฅธ ๋น๊ต๋ฅผ ํฌํจํ๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ์ ์ ๋ถ์ | ์ค์ ๋ถ์ | ๊ฒฐ๊ณผ | |
|---|---|---|---|
| Time | O(n log n) | O(n log n) | โ |
| Space | O(n) | O(n) | โ |
ํผ๋๋ฐฑ: ๋ฌธ์ ์ ๋ ฌ์ผ๋ก ์ ๋๊ทธ๋จ ์ฌ๋ถ๋ฅผ ํ๋จํ๋ ์ง๊ด์ ์ธ ์ ๊ทผ์ ๋๋ค.
๊ฐ์ ์ ์: ์ถ๊ฐ๋ก ํด์๋งต์ ์ด์ฉํด ์ ํ ์๊ฐ์ผ๋ก ํ์ดํ๋ ๋ฐฉ๋ฒ๋ ์์ต๋๋ค.
There was a problem hiding this comment.
๐ท๏ธ ์๊ณ ๋ฆฌ์ฆ ํจํด ๋ถ์
- ํจํด: Binary Search, Divide and Conquer, Depth-First Search
- ์ค๋ช : BST ์ ํจ์ฑ ๊ฒ์ฌ์์ ๊ฐ ๋ ธ๋์ ๋ํด ๋ฒ์๋ฅผ ์ฌ๊ท์ ์ผ๋ก ์ขํ ํ์ธํ๋ ๋ฐฉ์์ผ๋ก, ๋ ์์์ผ๋ก ๋ถํ ํ๋ฉฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ์ฌ๊ท DFS๋ฅผ ํ์ฉํ๊ณ ๋ฒ์๋ฅผ ๊ฐ๊ฐ ์ผ์ชฝ/์ค๋ฅธ์ชฝ์ ๋ํด ์ขํ ๊ฐ๋ ๋ฐฉ์์ divide and conquer์ DFS์ ์กฐํฉ์ผ๋ก ๋ณผ ์ ์๋ค.
๐ ์๊ฐ/๊ณต๊ฐ ๋ณต์ก๋ ๋ถ์
| ์ ์ ๋ถ์ | ์ค์ ๋ถ์ | ๊ฒฐ๊ณผ | |
|---|---|---|---|
| Time | O(n) | O(n) | โ |
| Space | O(n) | O(h) | โ |
ํผ๋๋ฐฑ: ์ ์์ํ ๋ฐฉ์์ผ๋ก ๊ฐ ๋ ธ๋์ ๋ฒ์๋ฅผ ์์ ๋ ธ๋์ ์ ๋ฌํ์ฌ BST ์กฐ๊ฑด์ ํ์ธํฉ๋๋ค.
๊ฐ์ ์ ์: ์คํ ๊ธฐ๋ฐ ์ํ๋ก ์ฌ๊ท ๊น์ด๋ฅผ ์ ๊ฑฐํด ๊ณต๊ฐ์ ์ต์ ํํ ์ ์์ต๋๋ค.
๋ต์ ์ ์ถ ๋ฌธ์
์์ฑ์ ์ฒดํฌ ๋ฆฌ์คํธ
In Review๋ก ์ค์ ํด์ฃผ์ธ์.๊ฒํ ์ ์ฒดํฌ ๋ฆฌ์คํธ
Important
๋ณธ์ธ ๋ต์ ์ ์ถ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ๋ถ PR ํ๋ ์ด์์ ๋ฐ๋์ ๊ฒํ ๋ฅผ ํด์ฃผ์ ์ผ ํฉ๋๋ค!