Skip to content

Commit a2e0835

Browse files
committed
feat: house-robber solution
1 parent c1e8ec3 commit a2e0835

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

β€Žhouse-robber/YeomChaeeun.ts

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/**
2+
* ν•˜λ‚˜ 이상 κ±΄λ„ˆ λ›΄ 값을 λ”ν•œ 것쀑 κ°€μž₯ 높은 κ°’μ˜ 합을 κ΅¬ν•˜κΈ°
3+
* @param nums
4+
*/
5+
function rob(nums: number[]): number {
6+
7+
if(nums.length === 1) return nums[0];
8+
9+
// 0 + 2 ...
10+
// 1 + 3 ...
11+
// Max(인덱슀 0λΆ€ν„° λ”ν•œ 것, 인덱슀 1λΆ€ν„° λ”ν•œ 것)
12+
13+
// μ ‘κ·Ό (1) - μ–‘ μ˜†μ˜ 값을 μ œμ™Έν•˜κ³  ν™€μˆ˜/짝수 인덱슀 값듀을 λ”ν–ˆμŒ
14+
// [2, 1, 1, 2] 일 λ•Œ, 닡이 4κ°€ λ‚˜μ™€μ•Ό 함
15+
// let max = 0
16+
// let odd = 0
17+
// let even = 0
18+
// for(let i = 0; i < nums.length; i++) {
19+
// if(i % 2 == 0) {
20+
// console.log(nums[i], 'even >>>', even);
21+
// even += nums[i];
22+
// } else {
23+
// console.log(nums[i], 'odd >>>', odd);
24+
// odd += nums[i];
25+
// }
26+
// }
27+
// console.log(even, '===', odd);
28+
// max = Math.max(even, odd);
29+
30+
// μ ‘κ·Ό (2) - max 값을 μ €μž₯해두고 Math.max(ν•˜λ‚˜ 이상 κ±΄λ„ˆλ›΄ κ°’ + ν˜„μž¬ κ°’ λ”ν•œ 것, max) λ₯Ό ꡬ함
31+
let prev = 0
32+
let max = 0
33+
let temp = 0
34+
for(let i = 0; i < nums.length; i++) {
35+
temp = max
36+
max = Math.max(prev + nums[i], max) // μ΄μ „μ˜ κ°’κ³Ό ν•˜λ‚˜ 이상 κ±΄λ„ˆλ›°κ³  λ”ν•œ κ°’ 쀑 μ΅œλŒ€ 값을 ꡬ함
37+
prev = temp
38+
39+
// console.log(temp, " - ", max, " - ", prev)
40+
};
41+
// console.log(max);
42+
return max;
43+
};

0 commit comments

Comments
Β (0)