Skip to content

Commit 2d55165

Browse files
authored
Merge pull request DaleStudy#749 from paragon0107/main
[Paragon0107] Week2
2 parents f231299 + 4e87445 commit 2d55165

File tree

3 files changed

+65
-0
lines changed

3 files changed

+65
-0
lines changed

3sum/paragon0107.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import java.util.Arrays;
2+
import java.util.HashSet;
3+
import java.util.List;
4+
import java.util.Set;
5+
6+
class Solution {
7+
public List<List<Integer>> threeSum(int[] nums) {
8+
Set<List<Integer>> set = new HashSet<>();
9+
Arrays.sort(nums);
10+
for (int i = 0; i < nums.length-2; i++) {
11+
int start = i + 1;
12+
int end = nums.length - 1;
13+
while (start < end) {
14+
int sum = nums[i] + nums[start] + nums[end];
15+
if (sum < 0 ) {
16+
start++;
17+
} else if (sum > 0) {
18+
end--;
19+
}else {
20+
set.add(Arrays.asList(nums[i], nums[start], nums[end]));
21+
start++;
22+
end--;
23+
}
24+
}
25+
}
26+
return set.stream().toList();
27+
}
28+
}

climbing-stairs/paragon0107_230.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*
2+
*
3+
* 시간 복잡도:
4+
* 바텀업 형식으로 배열을 훑으며 올라가기 때문에 O(N)
5+
* 공간 복잡도:
6+
* 자연수 마다 해당하는 방법의 갯수를 저장하기 때문에 O(N)
7+
*
8+
* */
9+
class Solution {
10+
public int climbStairs(int n) {
11+
int[] dp = new int[n + 1];
12+
dp[1] = 1;
13+
dp[2] = 2;
14+
for(int i=3;i<=n;i++){
15+
dp[i] = dp[i - 2] + dp[i - 1];
16+
}
17+
return dp[n];
18+
}
19+
}

valid-anagram/paragon0107_218.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import java.util.Arrays;
2+
/*
3+
* 시간 복잡도:
4+
* toCharArray는 O(1)의 복잡도를 갖고 ArraySor의 경우 평균O(nlogn), 최악O(n^2)를 갖음(코테시 몇으로 계산하고 진행해야 할 지는 잘 모르겠네요..)
5+
* 공간 복잡도:
6+
* s와t를 사용해서 그대로 배열로 만들기 때문에 O(n)
7+
*
8+
*
9+
* */
10+
class Solution {
11+
public static boolean isAnagram(String s, String t) {
12+
char[] s1 = s.toCharArray();
13+
char[] s2 = t.toCharArray();
14+
Arrays.sort(s1);
15+
Arrays.sort(s2);
16+
return Arrays.equals(s1, s2);
17+
}
18+
}

0 commit comments

Comments
 (0)