Skip to content

Commit d69715d

Browse files
committed
DaleStudy#268 decode-ways solution
1 parent 4a067a3 commit d69715d

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

โ€Ždecode-ways/sungjinwi.cpp

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*
2+
ํ’€์ด :
3+
i ๋ฒˆ์งธ ์—ฐ์‚ฐ์„ ์‹œ์ž‘ ์ „ cur๋Š” i + 1์—์„œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜, nxt์—๋Š” i + 2์—์„œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ ์ €์žฅ๋ผ์žˆ๋‹ค
4+
i ๋ฒˆ์งธ ์—ฐ์‚ฐ์ด ๋๋‚œ ํ›„ cur๋Š” i์—์„œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ, nxt์—๋Š” i + 1์—์„œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ ์ €์žฅ๋˜๋„๋ก ํ•œ๋‹ค
5+
s์˜ ๊ธธ์ด๊ฐ€ 1์ผ ๋•Œ ๋ฌด์กฐ๊ฑด 1๊ฐœ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ฐ€์ง€๋ฏ€๋กœ cur 1๋กœ ์ดˆ๊ธฐํ™”
6+
7+
์„ธ๊ฐ€์ง€ ๊ฒฝ์šฐ์˜ ์ˆ˜
8+
1. s[i]๊ฐ€ '0' ์ผ๋•Œ 0์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์ž์—ด์€ ํ•ด์„๊ฐ€๋Šฅํ•œ ์ˆ˜๊ฐ€ ์—†์œผ๋ฏ€๋กœ cur๋ฅผ 0์œผ๋กœ ํ•œ๋‹ค
9+
2. s[i]๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋‘ ์ž๋ฆฌ ์ˆ˜๊ฐ€ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด 27๋ณด๋‹ค ์ž‘์œผ๋ฉด, 1์ž๋ฆฌ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜(cur) + 2์ž๋ฆฌ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜(nxt)๋กœ cur ๋ณ€๊ฒฝ
10+
3. ๊ทธ ์™ธ์—๋Š” 1์ž๋ฆฌ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ ๋ฐ–์— ์—†์œผ๋ฏ€๋กœ cur ๊ทธ๋Œ€๋กœ
11+
12+
๋ฌธ์ž์—ด ๋์—์„œ ์กฐ๊ฑด์— ๋งž์ถฐ ์—…๋ฐ์ดํŠธ ํ•˜๋ฉด์„œ ๋ฌธ์ž์—ด ์ฒ˜์Œ๊นŒ์ง€ ์ˆœํšŒํ•˜๊ณ  cur ๋ฆฌํ„ดํ•œ๋‹ค
13+
14+
๋ฌธ์ž์—ด ๊ธธ์ด N
15+
16+
TC : O(N)
17+
๋ฌธ์ž์—ด ํ•œ๋ฒˆ ์ˆœํšŒ
18+
19+
SC : O(1)
20+
*/
21+
22+
#include <string>
23+
using namespace std;
24+
25+
class Solution {
26+
public:
27+
int numDecodings(string s) {
28+
int cur = 1;
29+
int nxt = 0;
30+
int tmp;
31+
32+
for (int i = s.size() - 1; i >= 0; i--)
33+
{
34+
tmp = nxt;
35+
if (s[i] == '0')
36+
{
37+
nxt = cur;
38+
cur = 0;
39+
}
40+
else if(i < s.size() - 1 && stoi(s.substr(i, 2)) < 27)
41+
{
42+
nxt = cur;
43+
cur = cur + tmp;
44+
}
45+
else
46+
{
47+
nxt = cur;
48+
}
49+
}
50+
return cur;
51+
}
52+
};

0 commit comments

Comments
ย (0)