File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed
Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change 1+ class Solution {
2+ /**
3+ * ์ธ์ ํฉ ๋ ์ง์ ํธ๋ฉด ์๋จ
4+ *
5+ * i๋ฒ์งธ ์ง์์ ํ ์ ์๋ ํ์๋? 2๊ฐ์ง.
6+ * ํธ๊ฑฐ๋:
7+ * ํธ๋ฉด i-1๋ฒ์งธ ์ง์ ์ ํธ์ด์ผํจ, i-2๋ฒ์งธ ์ง์ ํธ์ด๋ ๊ด์ฐฎ๊ฒ ์ง?
8+ * Money_A = nums[i] + DP[i-2]
9+ * ํธ์ง ์๊ฑฐ๋:
10+ * i๋ฒ์งธ ์ง์ ์ ํธ๋ฉด, i-1๋ฒ์งธ์ง์ ํธ์ด๋ ๊ด์ฐฎ๋ค.
11+ * Money_B = DP[i-1]
12+ * dp[i]๋ฅผ i๋ฒ์งธ ์ง ์์์ ๋ค๊ณ ์์ ์ต๋ ๊ธ์ก์ด๋ผ๊ณ ํ ๋,
13+ * dp[i] = MAX(Money_A, Money_B)
14+ * ๋ฌธ์ ๋ dp[nums.length-1]์ ๊ตฌํ๊ธฐ
15+ */
16+ public int rob (int [] nums ) {
17+ /**
18+ * 12๋ถ ์์.
19+ * Runtime: 0 ms (Beats 100%)
20+ * Memory: 42.74 MB (Beats 6.31%)
21+ * Space Complexity: O(N)
22+ * - nums ์ ์ฅ => O(N)
23+ * - ์ต๋ ๊ธ์ก ์ ์ฅ ๋ฐฐ์ด => O(N)
24+ * > O(2N) ~= O(N)
25+ * Time Complexity: O(N)
26+ * - nums ์ฒ์๋ถํฐ ๋๊น์ง ์กฐํํ๋ฉฐ dp ์ ์ฅ. => O(N)
27+ * > O(N)
28+ */
29+ int [] dp = new int [nums .length ];
30+
31+ dp [0 ] = nums [0 ];
32+ if (nums .length > 1 ) {
33+ dp [1 ] = Integer .max (dp [0 ], nums [1 ]);
34+ }
35+ for (int i = 2 ; i < nums .length ; i ++) {
36+ // ํฐ๋ ๊ฒฝ์ฐ์ ์ํฐ๋ ๊ฒฝ์ฐ ์ค ์ต๋ ๊ฐ.
37+ dp [i ] = Integer .max (dp [i - 2 ] + nums [i ], dp [i - 1 ]);
38+ }
39+ return dp [nums .length - 1 ];
40+ }
41+ }
You canโt perform that action at this time.
0 commit comments