File tree Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * λ¬Έμ μ ν
3
+ * - DP (μ νμ μ΄μ©, λ°±νΈλνΉ μ¬μ©μ TLE λ°μ)
4
+ *
5
+ * λ¬Έμ μ€λͺ
6
+ * - μ£Όμ΄μ§ λ¬Έμμ΄μ μ«μλ‘ λ³ννλ λ°©λ²μ κ°―μλ₯Ό ꡬνλ λ¬Έμ
7
+ *
8
+ * μμ΄λμ΄
9
+ * 1) f(i) = λ§μ§λ§ νμ리μκ° λ³ν κ°λ₯νλ©΄ f(i-1) + λ§μ§λ§ λμ리μκ° κ°λ₯νλ©΄ f(i-2)
10
+ * - νμ리μλ 0λ§ μλλ©΄ λ¨, λμ리μλ 10~26 μ¬μ΄μ¬μΌ ν¨.
11
+ *
12
+ */
13
+ function numDecodings ( s : string ) : number {
14
+ const n = s . length ;
15
+ if ( n === 1 ) return s [ 0 ] === "0" ? 0 : 1 ;
16
+
17
+ const dp = Array ( n + 1 ) . fill ( 0 ) ;
18
+ dp [ 0 ] = 1 ;
19
+ dp [ 1 ] = s [ 0 ] === "0" ? 0 : 1 ;
20
+
21
+ for ( let i = 2 ; i <= n ; i ++ ) {
22
+ const one = Number ( s [ i - 1 ] ) ;
23
+ const two = Number ( s [ i - 2 ] + s [ i - 1 ] ) ;
24
+ if ( one !== 0 ) dp [ i ] += dp [ i - 1 ] ;
25
+ if ( two >= 10 && two <= 26 ) dp [ i ] += dp [ i - 2 ] ;
26
+ }
27
+
28
+ return dp [ n ] ;
29
+ }
You canβt perform that action at this time.
0 commit comments