Skip to content

Commit 8bc27b0

Browse files
committed
solution Decode Ways (#268)
- #268
1 parent bdfb3d7 commit 8bc27b0

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

โ€Ždecode-ways/jiji-hoon96.tsโ€Ž

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
function numDecodings(s: string): number {
2+
// ๋นˆ ๋ฌธ์ž์—ด์ด๊ฑฐ๋‚˜ 0์œผ๋กœ ์‹œ์ž‘ํ•˜๋ฉด ๋””์ฝ”๋”ฉ ๋ถˆ๊ฐ€
3+
if (!s || s[0] === '0') return 0;
4+
5+
const n = s.length;
6+
7+
// ๋ฌธ์ž์—ด ๊ธธ์ด๊ฐ€ 1์ด๋ฉด ๋ฐ”๋กœ ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜
8+
if (n === 1) return 1;
9+
10+
// ์ดˆ๊ธฐ ์ƒํƒœ
11+
let prev = 1; // dp[0]
12+
let curr = s[0] === '0' ? 0 : 1; // dp[1]
13+
14+
for (let i = 2; i <= n; i++) {
15+
let temp = 0;
16+
const oneDigit = parseInt(s[i - 1]);
17+
const twoDigit = parseInt(s[i - 2] + s[i - 1]);
18+
19+
// ํ•œ ์ž๋ฆฌ ์ˆซ์ž๋กœ ๋””์ฝ”๋”ฉ (1-9)
20+
if (oneDigit >= 1) {
21+
temp += curr;
22+
}
23+
24+
// ๋‘ ์ž๋ฆฌ ์ˆซ์ž๋กœ ๋””์ฝ”๋”ฉ (10-26)
25+
if (twoDigit >= 10 && twoDigit <= 26) {
26+
temp += prev;
27+
}
28+
29+
// ์ƒํƒœ ์—…๋ฐ์ดํŠธ
30+
prev = curr;
31+
curr = temp;
32+
}
33+
34+
return curr;
35+
}

0 commit comments

Comments
ย (0)