Skip to content

Commit f6a57ff

Browse files
authored
Merge pull request DaleStudy#757 from river20s/main
2 parents 03d976c + cc5824e commit f6a57ff

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

climbing-stairs/river20s.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* 풀이: n번째 계단에 도달하는 경우는 다음 두 가지로 나뉜다.
3+
* 1. (n-1)번째 계단에서 한 계단 오르는 경우
4+
* 2. (n-2)번째 계단에서 두 계단 오르는 경우
5+
* 따라서, n개의 계단을 올라가는 방법의 경우의 수 F(n)은
6+
* F(n-1)과 F(n-2)의 합과 같다.
7+
* 시간 복잡도: O(n)
8+
* 공간 복잡도: O(1)
9+
*/
10+
class Solution {
11+
public int climbStairs(int n) {
12+
if(n == 1) return 1;
13+
14+
int step1 = 1;
15+
int step2 = 2;
16+
17+
for (int i = 3; i <= n; i++) {
18+
int temp = step1 + step2;
19+
step1 = step2;
20+
step2 = temp;
21+
}
22+
23+
return step2;
24+
}
25+
}
26+

valid-anagram/river20s.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import java.util.Arrays;
2+
/*
3+
풀이:
4+
- 문자열 s와 t를 배열로 저장하고, 오름차순으로 문자를 정렬한다.
5+
- 정렬된 두 배열이 동일하면 애너그램으로 판단한다.
6+
시간 복잡도:
7+
- O(n log n)
8+
- 배열 정렬은 O(n log n)의 시간 복잡도를 갖는다.
9+
공간 복잡도:
10+
- O(n)
11+
- 문자열을 배열로 변환하고 정렬할 때 O(n)의 공간 복잡도를 갖는다.
12+
*/
13+
class Solution {
14+
public boolean isAnagram(String s, String t) {
15+
// 두 문자열의 길이가 다르면 false
16+
if (s.length() != t.length()) {
17+
return false;
18+
}
19+
//문자열의 문자를 배열로 저장한다
20+
char[] sArray = s.toCharArray();
21+
char[] tArray = t.toCharArray();
22+
23+
// 각 배열의 문자를 오름차순으로 정렬한다
24+
Arrays.sort(sArray);
25+
Arrays.sort(tArray);
26+
27+
// 정렬한 두 배열을 비교한다.
28+
return Arrays.equals(sArray, tArray);
29+
}
30+
}
31+

0 commit comments

Comments
 (0)