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