Skip to content

Commit ca9457f

Browse files
week11 mission decode-ways
1 parent 4d7879e commit ca9457f

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

โ€Ždecode-ways/dev-jonghoonpark.md

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
- ๋ฌธ์ œ: https://leetcode.com/problems/decode-ways/
2+
- ํ’€์ด: https://algorithm.jonghoonpark.com/2024/07/08/leetcode-91
3+
4+
```java
5+
class Solution {
6+
public int numDecodings(String s) {
7+
int[] dp = new int[s.length()];
8+
9+
if (s.charAt(0) == '0') {
10+
return 0;
11+
}
12+
dp[0] = 1;
13+
14+
for (int i = 1; i < s.length(); i++) {
15+
int oneDigit = Integer.parseInt(String.valueOf(s.charAt(i)));
16+
if (oneDigit > 0) {
17+
dp[i] = dp[i - 1];
18+
}
19+
20+
int prevDigit = Integer.parseInt(String.valueOf(s.charAt(i - 1)));
21+
if (prevDigit == 0) {
22+
continue;
23+
}
24+
25+
int twoDigit = prevDigit * 10 + oneDigit;
26+
if (twoDigit <= 26) {
27+
if (i > 2) {
28+
dp[i] = dp[i] + dp[i - 2];
29+
} else {
30+
dp[i] = dp[i] + 1;
31+
}
32+
}
33+
}
34+
35+
return dp[s.length() - 1];
36+
}
37+
}
38+
```
39+
40+
### TC, SC
41+
42+
์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(n), ๊ณต๊ฐ„ ๋ณต์žก๋„๋Š” O(n)์ด๋‹ค.
43+
์ด๋Ÿฐ์‹์œผ๋กœ ์ตœ๊ทผ ๋ฐ์ดํ„ฐ๋งŒ ์žฌ์‚ฌ์šฉ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ณต๊ฐ„๋ณต์žก๋„๋ฅผ O(1) ์œผ๋กœ๋„ ์ค„์ผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
44+
์ตœ๊ทผ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ ์ด์ „ ๋ฐ์ดํ„ฐ๋“ค์€ ๋” ์ด์ƒ ์ฐธ์กฐ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ•„์š”ํ•œ ๊ณต๊ฐ„๋งŒ ๋งŒ๋“ค์–ด์„œ ๋ณด๊ด€ํ•˜๋ฉด ๋œ๋‹ค.

0 commit comments

Comments
ย (0)