dp문제인데 점화식을 x(n-2)+x(n-1)=x(n) 으로잡아야할듯
2 26 22 6 2 2 6
정답
class Solution {
fun numDecodings(s: String): Int {
val n = s.length
val dp = IntArray(n+1){0}
dp[0] = 1
for(i in 1..n) {
val ch = s[i-1]
if(ch == '0') dp[i] = 0
val prevCh = if(i > 1) s[i-2] else '0'
if(ch != '0') dp[i] += dp[i-1]
if(prevCh != '0' && prevCh <= '1' || prevCh == '2' && ch <= '6') dp[i] += dp[i-2]
}
return dp[n]
}
}
'알고리즘' 카테고리의 다른 글
릿코드 1897. Redistribute Characters to Make All Strings Equal 코틀린 (0) | 2023.12.30 |
---|---|
릿코드 1578. Minimum Time to Make Rope Colorful 코틀린 (1) | 2023.12.27 |
릿코드 1758. Minimum Changes To Make Alternating Binary String 코틀린 (0) | 2023.12.24 |
릿코드 1496. Path Crossing 코틀린 (1) | 2023.12.23 |
릿코드 1422. Maximum Score After Splitting a String 코틀린 (0) | 2023.12.22 |