Skip to content

Commit f4b9322

Browse files
committed
decode-ways
1 parent 8dfc886 commit f4b9322

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

โ€Ždecode-ways/changhyumm.pyโ€Ž

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
class Solution:
2+
def numDecodings(self, s: str) -> int:
3+
if s[0] == '0':
4+
return 0
5+
6+
n = len(s)
7+
# dp[i]๋ฅผ i๋ฒˆ์จฐ๊นŒ์ง€ ์ฒ˜๋ฆฌํ–ˆ์„๋–„์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜์˜ ํ•ฉ์œผ๋กœ ์ •์˜
8+
dp = [0] * n
9+
# dp[0] = 1 (์ฒซ์ž๋ฆฌ ์ˆ˜)
10+
dp[0] = 1
11+
12+
# i๋ฒˆ์จฐ ์ˆซ์ž๊ฐ€ 1~9๋กœ ๋Œ€์ฒด๋  ์ˆ˜ ์žˆ์œผ๋ฉด ์ด์ „๊นŒ์ง€์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜ ํ•ฉ์„ ์ด์–ด๊ฐ
13+
# i๋ฒˆ์จฐ ์ˆซ์ž(๋‘์ž๋ฆฌ์ˆ˜)๊ฐ€ 10~26์œผ๋กœ ๋Œ€์ฒด๋  ์ˆ˜ ์žˆ์œผ๋ฉด ์•ž์ž๋ฆฌ๋Š” ์‚ฌ์šฉํ•œ ๊ฒƒ์ด๋ฏ€๋กœ ๊ทธ ์•ž์ž๋ฆฌ๊นŒ์ง€์˜ ์ƒํƒœ๋ฅผ ๊ฐ€์ ธ์˜ด
14+
# ์‹œ๊ฐ„๋ณต์žก๋„, ๊ณต๊ฐ„๋ณต์žก๋„ O(n)
15+
for i in range(1, n):
16+
num1 = int(s[i])
17+
num2 = int(s[i -1 : i + 1])
18+
if 1 <= num1 <= 9:
19+
dp[i] += dp[i - 1]
20+
if 10 <= num2 <= 26:
21+
if i == 1:
22+
dp[i] += 1
23+
else:
24+
dp[i] += dp[i - 2]
25+
return dp[n-1]

0 commit comments

Comments
ย (0)