File tree Expand file tree Collapse file tree 2 files changed +40
-6
lines changed Expand file tree Collapse file tree 2 files changed +40
-6
lines changed Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ /**
3
+ * ๊ธฐ์กด house-robber 1 ๋ฌธ์ ์์ ๋ก์ง์ ๊ฐ์ ธ์ค๋, ์ ๊ทผ๋ฒ์ ๋ฌ๋ฆฌํ๋ ๋ฌธ์
4
+ */
5
+ public int rob (int [] nums ) {
6
+ if (nums .length == 1 ) return nums [0 ];
7
+ else if (nums .length == 2 )
8
+ return Math .max (nums [0 ], nums [1 ]);
9
+ else if (nums .length == 3 ) {
10
+ return Math .max (Math .max (nums [0 ], nums [1 ]), nums [2 ]);
11
+ }
12
+
13
+ int n = nums .length ;
14
+ // ์ฒซ์งธ ์์๋ง ํฌํจํ dp (๋ง์ง๋ง ์์ ํฌํจ X)
15
+ int [] firstDp = new int [n - 1 ];
16
+ firstDp [0 ] = nums [0 ];
17
+ for (int i = 1 ; i < n - 1 ; i ++) {
18
+ int prev2AndNowRob = (i - 2 < 0 ? 0 : firstDp [i - 2 ]) + nums [i ];
19
+ int prev1Rob = firstDp [i - 1 ];
20
+
21
+ firstDp [i ] = Math .max (prev2AndNowRob , prev1Rob );
22
+ }
23
+ // System.out.println(firstDp[n-2]); // ok
24
+
25
+ // ๋ง์ง๋ง ์์๋ง ํฌํจํ dp (์ฒซ๋ฒ์งธ ์์ ํฌํจ X)
26
+ int [] lastDp = new int [n ];
27
+ lastDp [1 ] = nums [1 ];
28
+ for (int i = 2 ; i < n ; i ++) {
29
+ int prev2AndNowRob = (i - 2 < 1 ? 0 : lastDp [i - 2 ]) + nums [i ];
30
+ int prev1Rob = lastDp [i - 1 ];
31
+
32
+ lastDp [i ] = Math .max (prev2AndNowRob , prev1Rob );
33
+ }
34
+ // System.out.println(lastDp[n-1]); // ok
35
+
36
+ return Math .max (firstDp [n - 2 ], lastDp [n - 1 ]);
37
+ }
38
+ }
Original file line number Diff line number Diff line change 1
- import java .util .HashMap ;
2
- import java .util .Map ;
3
- import java .util .PriorityQueue ;
1
+ import java .util .*;
4
2
5
3
class Solution {
6
4
public int [] topKFrequent (int [] nums , int k ) {
@@ -16,9 +14,7 @@ public int[] topKFrequent(int[] nums, int k) {
16
14
* ๊ฒฐ๊ณผ๋ฐฐ์ด์ ํ ๋นํ ๋๋ ๊ทธ๋ฅ ์์์๋ถํฐ ํ๋ฉด ๋๋ค.
17
15
* ์ด๋ฏธ k๊ฐ๋ฅผ ๋ง์กฑํ๊ณ , ๋น๋์๊ฐ ๋ฎ -> ๋ ์์๋๋ก ๊ทธ๋๋ก ์์ผ๋ฉด ๋๋ค.
18
16
*
19
- * ์ฐ์ ์์ํ์ ํ ๋นํ ๋ [์ซ์, ๋น๋์]๋ [๋น๋์, ์ซ์] ๋๋ ๋ณ ์๊ด์ด ์๋ค.
20
- * 1. ์ฐ์ ์์ ํ ์ด๊ธฐํ
21
- * 2. ๊ฒฐ๊ณผ๋ฐฐ์ด์ ๊ฐ ํ ๋นํ ๋ ์ฐธ์กฐํ๋ [์ธ๋ฑ์ค]
17
+ * ์ฒซ๋ฒ์งธ๋ถํฐ ๊บผ๋ด์ ๊ฒฐ๊ณผ๋ฐฐ์ด์ ํ ๋นํ ๊ฑฐ๋ฉด [๋น๋์, ์ซ์]๋ก ํ์ ์ ์ฅํ๋ ๊ฒ ๋ง๋ค
22
18
*/
23
19
int [] answer = new int [k ];
24
20
You canโt perform that action at this time.
0 commit comments