File tree Expand file tree Collapse file tree 3 files changed +69
-0
lines changed Expand file tree Collapse file tree 3 files changed +69
-0
lines changed Original file line number Diff line number Diff line change 1+ function combinationSum ( candidates , target ) {
2+ const result = [ ] ;
3+
4+ // 1. 정렬: 가지치기를 위한 필수
5+ candidates . sort ( ( a , b ) => a - b ) ;
6+
7+ function backtrack ( startIndex , path , remaining ) {
8+ if ( remaining === 0 ) {
9+ result . push ( [ ...path ] ) ;
10+ return ;
11+ }
12+
13+ for ( let i = startIndex ; i < candidates . length ; i ++ ) {
14+ const current = candidates [ i ] ;
15+
16+ // 2. 가지치기
17+ if ( current > remaining ) break ;
18+
19+ // 3. 현재 값 선택
20+ path . push ( current ) ;
21+ backtrack ( i , path , remaining - current ) ; // i로 재귀 호출: 같은 수 중복 사용 가능
22+ path . pop ( ) ; // 4. 백트래킹
23+ }
24+ }
25+
26+ backtrack ( 0 , [ ] , target ) ;
27+ return result ;
28+ }
Original file line number Diff line number Diff line change 1+ function numDecodings ( s ) {
2+ const n = s . length ;
3+
4+ if ( s [ 0 ] === "0" ) return 0 ;
5+
6+ const dp = new Array ( n + 1 ) . fill ( 0 ) ;
7+ dp [ 0 ] = 1 ;
8+ dp [ 1 ] = 1 ;
9+
10+ for ( let i = 2 ; i <= n ; i ++ ) {
11+ const oneDigit = Number ( s . slice ( i - 1 , i ) ) ;
12+ const twoDigits = Number ( s . slice ( i - 2 , i ) ) ;
13+
14+ if ( oneDigit >= 1 && oneDigit <= 9 ) {
15+ dp [ i ] += dp [ i - 1 ] ;
16+ }
17+
18+ if ( twoDigits >= 10 && twoDigits <= 26 ) {
19+ dp [ i ] += dp [ i - 2 ] ;
20+ }
21+ }
22+
23+ return dp [ n ] ;
24+ }
Original file line number Diff line number Diff line change 1+ /**
2+ * @param {string } s
3+ * @return {boolean }
4+ */
5+
6+ var isPalindrome = function ( s ) {
7+ // 1. 영숫자만 남기고, 소문자로 변환
8+ let cleaned = s . toLowerCase ( ) . replace ( / [ ^ a - z 0 - 9 ] / g, "" ) ;
9+
10+ // 2. 뒤집기
11+ let reversed = cleaned . split ( "" ) . reverse ( ) . join ( "" ) ;
12+
13+ // 3. 비교
14+ return cleaned === reversed ;
15+ } ;
16+
17+ isPalindrome ( "A man, a plan, a canal: Panama" ) ;
You can’t perform that action at this time.
0 commit comments