File tree Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Original file line number Diff line number Diff line change
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
+ };
You canโt perform that action at this time.
0 commit comments