File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * μ£Όμ΄μ§ λ¬Έμμ΄μ 볡νΈννλ κ²½μ°μ μλ₯Ό λ°ννλ ν¨μ
3+ * @param {string } s
4+ * @return {number }
5+ */
6+ const numDecodings = function ( s ) {
7+ const dp = { } ;
8+
9+ function decode ( idx ) {
10+ if ( s [ idx ] === '0' ) {
11+ return 0 ;
12+ }
13+
14+ if ( idx === s . length ) {
15+ return 1 ;
16+ }
17+
18+ if ( dp [ idx ] ) {
19+ return dp [ idx ] ;
20+ }
21+
22+ let result = 0 ;
23+ result += decode ( idx + 1 ) ; // νμ¬ λ¬Έμλ§ μ°λ κ²½μ°: λ€μ λ¬ΈμλΆν° νμ
24+ if ( s [ idx + 1 ] && Number ( s [ idx ] + s [ idx + 1 ] ) <= 26 ) {
25+ result += decode ( idx + 2 ) ; // νμ¬ λ¬Έμμ λ€μ λ¬Έμ λΆμ¬μ μ°λ κ²½μ°: λ€λ€μ λ¬ΈμλΆν° νμ
26+ }
27+
28+ dp [ idx ] = result ;
29+ return result ;
30+ }
31+
32+ return decode ( 0 ) ;
33+ } ;
34+
35+ // μκ°λ³΅μ‘λ: O(n) (λ©λͺ¨μ΄μ μ΄μ
μνλ©΄ λ§€ μΈλ±μ€λ§λ€ μ΅λ 2κ°μ νμ νΈμΆμ΄ λ°μνμ¬ O(2^n))
36+ // 곡κ°λ³΅μ‘λ: O(n)
You canβt perform that action at this time.
0 commit comments