Skip to content

Commit e767d99

Browse files
authored
Merge pull request #2001 from BaeKwangho/main
[dev_qorh] WEEK1 solutions
2 parents 56231b8 + 35d3081 commit e767d99

File tree

2 files changed

+87
-0
lines changed

2 files changed

+87
-0
lines changed

β€Žhouse-robber/Baekwangho.tsβ€Ž

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
/** 1μ°¨ μ‹œλ„
2+
function rob(nums: number[]): number {
3+
const jumpArray = []
4+
5+
if (nums.length<3) {
6+
nums.sort((a,b)=> b-a)
7+
return nums[0]
8+
}
9+
10+
for (let i = 0; i<=nums.length-3; i++) {
11+
jumpArray.push(nums[i]+nums[i+2])
12+
}
13+
14+
let maximum = 0
15+
16+
for (let i = 0; i<jumpArray.length-2; i+=3) {
17+
if(jumpArray[i] >= jumpArray[i+1]) {
18+
maximum += jumpArray[i]
19+
}else{
20+
maximum += jumpArray[i+1]
21+
}
22+
}
23+
24+
return maximum
25+
};
26+
*/
27+
28+
/** 2μ°¨ μ‹œλ„, 풀이 μ°Έκ³ 
29+
f(nums) => nums λ₯Ό ν„Έμ–΄ ꡬ할 수 μžˆλŠ” κ°€μž₯ 큰 κΈˆμ•‘
30+
첫집뢀터 ν„Έμ—ˆμ„ λ•Œ: nums[0] + f(nums[2:])
31+
λ‘˜μ§Έμ§‘λΆ€ν„° ν„Έμ—ˆμ„ λ•Œ: f(nums[1:])
32+
33+
첫 μ‹œμž‘
34+
f(nums) = MAX(nums[0] + f(nums[2:]), f(nums[1:]))
35+
36+
function rob(nums: number[]): number {
37+
function f (num: number) {
38+
if(nums.length - 1 < num) {
39+
return 0
40+
}
41+
42+
const first = nums[num] + f(num + 2)
43+
const second = f(num + 1)
44+
return first >= second ? first : second
45+
}
46+
47+
return f(0)
48+
}
49+
*/
50+
51+
function rob(nums: number[]): number {
52+
const resultMap = new Map();
53+
54+
function f(num: number) {
55+
if (resultMap.has(num)) {
56+
return resultMap.get(num);
57+
}
58+
59+
if (nums.length - 1 < num) {
60+
resultMap.set(num, 0);
61+
} else {
62+
const first = nums[num] + f(num + 2);
63+
const second = f(num + 1);
64+
65+
const result = first >= second ? first : second;
66+
resultMap.set(num, result);
67+
}
68+
69+
return resultMap.get(num);
70+
}
71+
72+
return f(0);
73+
}

β€Žtwo-sum/Baekwangho.tsβ€Ž

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/**
2+
* κ°€μž₯ λ‹¨μˆœν•œ O(n^2) 둜 ν’€μ΄ν•˜μ˜€μŠ΅λ‹ˆλ‹€
3+
*/
4+
function twoSum(nums: number[], target: number): number[] {
5+
for (let i = 0; i < nums.length; i++) {
6+
for (let j = i + 1; j < nums.length; j++) {
7+
if (nums[i] + nums[j] === target) {
8+
return [i, j];
9+
}
10+
}
11+
}
12+
13+
return [];
14+
}

0 commit comments

Comments
Β (0)