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