File tree Expand file tree Collapse file tree 2 files changed +66
-0
lines changed Expand file tree Collapse file tree 2 files changed +66
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * @description
3
+ * ๋์ ํ๋ก๊ทธ๋๋ฐ(Dynamic Programming, DP)์ ์ฌ์ฉํ์ฌ ๊ณ๋จ์ ์ค๋ฅด๋ ๋ฐฉ๋ฒ ์๋ฅผ ๊ณ์ฐํฉ๋๋ค.
4
+ * - ์ ํ์: dp[i] = dp[i-1] + dp[i-2]
5
+ * - dp[i-1]: ์ด์ ๊ณ๋จ์์ 1๋จ๊ณ ์ฌ๋ผ์จ ๊ฒฝ์ฐ
6
+ * - dp[i-2]: ๋ ๊ณ๋จ ์๋์์ 2๋จ๊ณ ์ฌ๋ผ์จ ๊ฒฝ์ฐ
7
+ * - ๊ณต๊ฐ ์ต์ ํ๋ฅผ ํตํด ๋ฐฐ์ด ๋์ ๋ ๋ณ์(prev1, prev2)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์
๋๋ค.
8
+ * @param {number }n step ์
9
+ * @returns {number } ๊ณ๋จ ๋๋ฌ ๋ฐฉ๋ฒ ์
10
+ */
11
+ function climbStairs ( n : number ) : number {
12
+ if ( n <= 2 ) return n ;
13
+
14
+ let prev2 = 1 ; // dp[i-2]
15
+ let prev1 = 2 ; // dp[i-1]
16
+
17
+ for ( let i = 3 ; i <= n ; i ++ ) {
18
+ const cur = prev1 + prev2 ; // dp[i] ๊ณ์ฐ
19
+ prev2 = prev1 ; // dp[i-2] ๊ฐฑ์
20
+ prev1 = cur ; // dp[i-1] ๊ฐฑ์
21
+ }
22
+
23
+ return prev1 ; // dp[n] ๋ฐํ
24
+ } ;
25
+
Original file line number Diff line number Diff line change
1
+ /**
2
+ * ๋ ๋ฌธ์์ด์ ๋น๊ตํด์ Anagram ์ฌ๋ถ ํ์ธ
3
+ * - ์๊ฐ ๋ณต์ก๋: O(n)
4
+ * - ๋ฌธ์์ด ์ํ์ ๋น๊ต ๊ณผ์ ์ ํฌํจํ์ฌ n์ ๋ฌธ์์ด์ ๊ธธ์ด
5
+ * - ๊ณต๊ฐ ๋ณต์ก๋: 0(1)
6
+ * - ์ํ๋ฒณ ๊ฐ์๊ฐ 26๊ฐ๋ก ๊ณ ์ ์์ ๊ณต๊ฐ
7
+ * @param {string } s - ๋ฌธ์์ด s
8
+ * @param {string } t - ๋ฌธ์์ด t
9
+ * @returns {boolean } - Anagram ์ฌ๋ถ
10
+ */
11
+ function isAnagram ( s : string , t : string ) : boolean {
12
+ // ๋ ๋ฌธ์ด์ ๊ธธ์ด๊ฐ ๋ค๋ฅธ๊ฒฝ์ฐ false ๋ฐํ
13
+ if ( s . length !== t . length ) {
14
+ return false ;
15
+ }
16
+
17
+ // ๋ฌธ์์ด ์ํ๋ฒณ ์ฌ์ ์ ์ํ ๊ฐ์ฒด ์ ์ธ
18
+ let vocabS = { } ;
19
+ let vocabT = { } ;
20
+
21
+ // s ๋ฌธ์์ด์ ๋ํ ์ํ๋ฒณ ์ฌ์ ์์ฑ
22
+ for ( const char in s ) {
23
+ vocabS = vocabS [ char ] ? vocabS [ char ] + 1 : 1 ;
24
+ } ;
25
+
26
+ // t ๋ฌธ์์ด์ ๋ํ ์ํ๋ฒณ ์ฌ์ ์์ฑ
27
+ for ( const char in t ) {
28
+ vocabT = vocabT [ char ] ? vocabT [ char ] + 1 : 1 ;
29
+ }
30
+
31
+
32
+ // ๋ ๋ฌธ์์ด ์ฌ์ ์ ๋น๊ตํ๋ฉฐ count ๊ฐ ์ผ์น ํ์ง ์์ ๊ฒฝ์ฐ false ๋ฐํ
33
+ for ( const char in vocabS ) {
34
+ if ( vocabS [ char ] !== vocabT [ char ] ) {
35
+ return false ;
36
+ }
37
+ }
38
+
39
+ return true ;
40
+ } ;
41
+
You canโt perform that action at this time.
0 commit comments