File tree Expand file tree Collapse file tree 5 files changed +129
-0
lines changed 
longest-consecutive-sequence Expand file tree Collapse file tree 5 files changed +129
-0
lines changed Original file line number Diff line number Diff line change 1+ // ์๊ฐ๋ณต์ก๋: O(n) 
2+ 
3+ /** 
4+  * @param  {number[] } nums 
5+  * @return  {boolean } 
6+  */ 
7+ var  containsDuplicate  =  function  ( nums )  { 
8+   const  seen  =  new  Set ( ) ; 
9+   for  ( let  num  of  nums )  { 
10+     if  ( seen . has ( num ) )  { 
11+       return  true ;  // ์ค๋ณต ๋ฐ๊ฒฌ 
12+     } 
13+     seen . add ( num ) ; 
14+   } 
15+   return  false ;  // ๋ชจ๋  ์์๊ฐ ๊ณ ์  
16+ } ; 
17+ 
Original file line number Diff line number Diff line change 1+ // ์๊ฐ๋ณต์ก๋: O(n) 
2+ 
3+ /** 
4+  * @param  {number[] } nums 
5+  * @return  {number } 
6+  */ 
7+ var  rob  =  function  ( nums )  { 
8+   const  n  =  nums . length ; 
9+   if  ( n  ===  0 )  return  0 ; 
10+   if  ( n  ===  1 )  return  nums [ 0 ] ; 
11+ 
12+   // DP ๋ฐฐ์ด ์ด๊ธฐํ 
13+   let  prev2  =  0 ;  // dp[i-2] 
14+   let  prev1  =  0 ;  // dp[i-1] 
15+ 
16+   // ์ต๋ ์์ต ๊ณ์ฐ 
17+   for  ( let  num  of  nums )  { 
18+     const  current  =  Math . max ( prev1 ,  prev2  +  num ) ; 
19+     prev2  =  prev1 ; 
20+     prev1  =  current ; 
21+   } 
22+ 
23+   return  prev1 ; 
24+ } ; 
25+ 
Original file line number Diff line number Diff line change 1+ // ์๊ฐ๋ณต์ก๋: O(n) 
2+ 
3+ /** 
4+  * @param  {number[] } nums 
5+  * @return  {number } 
6+  */ 
7+ var  longestConsecutive  =  function  ( nums )  { 
8+   // Set์ ์ฌ์ฉํด ์ค๋ณต ์ ๊ฑฐ 
9+   const  numSet  =  new  Set ( nums ) ; 
10+   let  longestStreak  =  0 ; 
11+ 
12+   // ๊ฐ ์ซ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฐ์ ์ํ์ค๋ฅผ ํ์ 
13+   for  ( let  num  of  numSet )  { 
14+     // num์ด ์ํ์ค์ ์์์ ์ธ ๊ฒฝ์ฐ๋ง ํ์ 
15+     if  ( ! numSet . has ( num  -  1 ) )  { 
16+       let  currentNum  =  num ; 
17+       let  currentStreak  =  1 ; 
18+ 
19+       // ํ์ฌ ์ํ์ค๋ฅผ ๋ฐ๋ผ๊ฐ๋ฉฐ ๊ธธ์ด ๊ณ์ฐ 
20+       while  ( numSet . has ( currentNum  +  1 ) )  { 
21+         currentNum ++ ; 
22+         currentStreak ++ ; 
23+       } 
24+ 
25+       // ์ต๋ ๊ธธ์ด๋ฅผ ์
๋ฐ์ดํธ 
26+       longestStreak  =  Math . max ( longestStreak ,  currentStreak ) ; 
27+     } 
28+   } 
29+ 
30+   return  longestStreak ; 
31+ } ; 
32+ 
Original file line number Diff line number Diff line change 1+ // ์๊ฐ๋ณต์ก๋: O(n) 
2+ 
3+ /** 
4+  * @param  {number[] } nums 
5+  * @param  {number } k 
6+  * @return  {number[] } 
7+  */ 
8+ var  topKFrequent  =  function  ( nums ,  k )  { 
9+   // ๋น๋ ๊ณ์ฐ 
10+   const  frequencyMap  =  new  Map ( ) ; 
11+   for  ( let  num  of  nums )  { 
12+     frequencyMap . set ( num ,  ( frequencyMap . get ( num )  ||  0 )  +  1 ) ; 
13+   } 
14+ 
15+   // ๋ฒํท ์ ๋ ฌ 
16+   const  bucket  =  Array ( nums . length  +  1 ) . fill ( null ) . map ( ( )  =>  [ ] ) ; 
17+   for  ( let  [ num ,  freq ]  of  frequencyMap )  { 
18+     bucket [ freq ] . push ( num ) ; 
19+   } 
20+ 
21+   // ๋น๋ ๋์ ์์๋ค ์ถ์ถ 
22+   const  result  =  [ ] ; 
23+   for  ( let  i  =  bucket . length  -  1 ;  i  >=  0  &&  result . length  <  k ;  i -- )  { 
24+     if  ( bucket [ i ] . length  >  0 )  { 
25+       result . push ( ...bucket [ i ] ) ; 
26+     } 
27+   } 
28+ 
29+   return  result . slice ( 0 ,  k ) ;  // ์์ k๊ฐ์ ์์ ๋ฐํ 
30+ } ; 
31+ 
Original file line number Diff line number Diff line change 1+ // ์๊ฐ๋ณต์ก๋: O(n) 
2+ 
3+ /** 
4+  * @param  {string } s 
5+  * @return  {boolean } 
6+  */ 
7+ var  isPalindrome  =  function  ( s )  { 
8+   // ์ ์ฒ๋ฆฌ - ์ํ๋ฒณ๊ณผ ์ซ์๋ง ๋จ๊ธฐ๊ณ  ์๋ฌธ์๋ก ๋ณํ 
9+   const  cleanString  =  s . toLowerCase ( ) . replace ( / [ ^ a - z 0 - 9 ] / g,  "" ) ; 
10+ 
11+   // ์ ๋์์ ํฌ์ธํฐ๋ฅผ ์ด๋ํ๋ฉฐ ํ์ธ 
12+   let  left  =  0 ,  right  =  cleanString . length  -  1 ; 
13+ 
14+   while  ( left  <  right )  { 
15+     if  ( cleanString [ left ]  !==  cleanString [ right ] )  { 
16+       return  false ;  // ๋์นญ์ด ๊นจ์ง๋ฉด false 
17+     } 
18+     left ++ ; 
19+     right -- ; 
20+   } 
21+ 
22+   return  true ;  // ๋์นญ์ด ์ ์ง๋๋ฉด true 
23+ } ; 
24+ 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You canโt perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments