Skip to content

Commit f5fa02c

Browse files
author
jinvicky
committed
house robber solution
1 parent ccb9a7b commit f5fa02c

File tree

2 files changed

+40
-6
lines changed

2 files changed

+40
-6
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
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+
}

โ€Žtop-k-frequent-elements/jinvicky.javaโ€Ž

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
import java.util.HashMap;
2-
import java.util.Map;
3-
import java.util.PriorityQueue;
1+
import java.util.*;
42

53
class Solution {
64
public int[] topKFrequent(int[] nums, int k) {
@@ -16,9 +14,7 @@ public int[] topKFrequent(int[] nums, int k) {
1614
* ๊ฒฐ๊ณผ๋ฐฐ์—ด์— ํ• ๋‹นํ•  ๋•Œ๋Š” ๊ทธ๋ƒฅ ์•ž์—์„œ๋ถ€ํ„ฐ ํ•˜๋ฉด ๋œ๋‹ค.
1715
* ์ด๋ฏธ k๊ฐœ๋ฅผ ๋งŒ์กฑํ–ˆ๊ณ , ๋นˆ๋„์ˆ˜๊ฐ€ ๋‚ฎ -> ๋†’ ์ˆœ์„œ๋Œ€๋กœ ๊ทธ๋Œ€๋กœ ์Œ“์œผ๋ฉด ๋œ๋‹ค.
1816
*
19-
* ์šฐ์„ ์ˆœ์œ„ํ์— ํ• ๋‹นํ•  ๋•Œ [์ˆซ์ž, ๋นˆ๋„์ˆ˜]๋ƒ [๋นˆ๋„์ˆ˜, ์ˆซ์ž] ๋ƒ๋Š” ๋ณ„ ์ƒ๊ด€์ด ์—†๋‹ค.
20-
* 1. ์šฐ์„ ์ˆœ์œ„ ํ ์ดˆ๊ธฐํ™”
21-
* 2. ๊ฒฐ๊ณผ๋ฐฐ์—ด์— ๊ฐ’ ํ• ๋‹นํ•  ๋•Œ ์ฐธ์กฐํ•˜๋Š” [์ธ๋ฑ์Šค]
17+
* ์ฒซ๋ฒˆ์งธ๋ถ€ํ„ฐ ๊บผ๋‚ด์„œ ๊ฒฐ๊ณผ๋ฐฐ์—ด์— ํ• ๋‹นํ•  ๊ฑฐ๋ฉด [๋นˆ๋„์ˆ˜, ์ˆซ์ž]๋กœ ํ์— ์ €์žฅํ•˜๋Š” ๊ฒŒ ๋งž๋‹ค
2218
*/
2319
int[] answer = new int[k];
2420

0 commit comments

Comments
ย (0)