File tree Expand file tree Collapse file tree 2 files changed +57
-0
lines changed Expand file tree Collapse file tree 2 files changed +57
-0
lines changed Original file line number Diff line number Diff line change
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
+
Original file line number Diff line number Diff line change
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
+
You can’t perform that action at this time.
0 commit comments