File tree Expand file tree Collapse file tree 3 files changed +58
-0
lines changed
longest-common-subsequence Expand file tree Collapse file tree 3 files changed +58
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * ๊ฐ์ฅ ๊ธด ๊ณตํต ๋ถ๋ถ ์์ด ๊ตฌํ๊ธฐ
3
+ * ์๊ณ ๋ฆฌ์ฆ ๋ณต์ก๋
4
+ * - ์๊ฐ ๋ณต์ก๋: O(m*n)
5
+ * - ๊ณต๊ฐ ๋ณต์ก๋: O(m*n)
6
+ * @param text1
7
+ * @param text2
8
+ */
9
+ function longestCommonSubsequence ( text1 : string , text2 : string ) : number {
10
+ let dp : number [ ] [ ] = Array ( text1 . length + 1 ) . fill ( 0 )
11
+ . map ( ( ) => Array ( text2 . length + 1 ) . fill ( 0 ) ) ;
12
+
13
+ for ( let i = 1 ; i <= text1 . length ; i ++ ) {
14
+ for ( let j = 1 ; j <= text2 . length ; j ++ ) {
15
+ if ( text1 [ i - 1 ] === text2 [ j - 1 ] ) {
16
+ dp [ i ] [ j ] = dp [ i - 1 ] [ j - 1 ] + 1 ;
17
+ } else {
18
+ dp [ i ] [ j ] = Math . max ( dp [ i - 1 ] [ j ] , dp [ i ] [ j - 1 ] ) ;
19
+ }
20
+ }
21
+ }
22
+
23
+ return dp [ text1 . length ] [ text2 . length ] ;
24
+ }
Original file line number Diff line number Diff line change
1
+ /**
2
+ * 10์ง์ n์ด 2์ง์์ผ ๋ 1์ ์ธ๊ธฐ
3
+ * ์๊ณ ๋ฆฌ์ฆ ๋ณต์ก๋
4
+ * - ์๊ฐ ๋ณต์ก๋: O(logn)
5
+ * - ๊ณต๊ฐ ๋ณต์ก๋: O(logn)
6
+ * @param n
7
+ */
8
+ function hammingWeight ( n : number ) : number {
9
+ let binary = "" ;
10
+
11
+ while ( n > 0 ) {
12
+ binary = ( n % 2 ) + binary ;
13
+ n = Math . floor ( n / 2 ) ;
14
+ }
15
+
16
+ return [ ...binary ] . filter ( val => val === '1' ) . length
17
+ }
Original file line number Diff line number Diff line change
1
+ /**
2
+ * ์ฐ์ฐ์ + ์ฌ์ฉํ์ง ์๊ณ ๋ง์
ํ๊ธฐ
3
+ * ์๊ณ ๋ฆฌ์ฆ ๋ณต์ก๋
4
+ * - ์๊ฐ ๋ณต์ก๋: O(logn) - ๋นํธ ์๋งํผ ๊ณ์ฐ
5
+ * - ๊ณต๊ฐ ๋ณต์ก๋: O(1)
6
+ * @param a
7
+ * @param b
8
+ */
9
+ function getSum ( a : number , b : number ) : number {
10
+ while ( b !== 0 ) {
11
+ let carry = a & b ; // and - 11 & 10 = 10
12
+ a = a ^ b ; // xor - 11 ^ 10 = 01
13
+ b = carry << 1 ; // 100
14
+ }
15
+
16
+ return a
17
+ }
You canโt perform that action at this time.
0 commit comments