Skip to content

Commit 3855d18

Browse files
authored
[yuhyeon99] WEEK 01 solution
[yuhyeon99] WEEK 01 solution
2 parents 3c6ad8e + 64f633c commit 3855d18

File tree

5 files changed

+112
-0
lines changed

5 files changed

+112
-0
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {boolean}
4+
*/
5+
var containsDuplicate = function(nums) {
6+
let numsSet = new Set();
7+
for(let i = 0; i < nums.length; i ++) {
8+
if(numsSet.has(nums[i])) return true;
9+
numsSet.add(nums[i])
10+
}
11+
return false;
12+
};

โ€Žhouse-robber/yuhyeon99.jsโ€Ž

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number}
4+
*/
5+
var rob = function(nums) {
6+
const memo = {};
7+
8+
function dfs(start) {
9+
if(memo[start] !== undefined) return memo[start];
10+
if(start >= nums.length) {
11+
memo[start] = 0;
12+
} else {
13+
memo[start] = Math.max(nums[start] + dfs(start + 2), dfs(start + 1))
14+
}
15+
return memo[start];
16+
}
17+
18+
return dfs(0);
19+
};
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number}
4+
*/
5+
var longestConsecutive = function(nums) {
6+
if(!nums.length) return 0;
7+
8+
nums.sort((a, b) => a - b);
9+
var answer = 0;
10+
var length = 1;
11+
for(let i = 0; i < nums.length - 1; i ++) {
12+
if(nums[i] === nums[i + 1]) {
13+
continue;
14+
} else if (nums[i] + 1 === nums[i + 1]) {
15+
length ++;
16+
} else {
17+
answer = Math.max(length, answer);
18+
length = 1;
19+
}
20+
}
21+
22+
answer = Math.max(length, answer);
23+
24+
return answer;
25+
};
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} k
4+
* @return {number[]}
5+
*/
6+
var topKFrequent = function(nums, k) {
7+
var dict = {};
8+
var sortTable = [];
9+
for(let i = 0; i < nums.length; i ++) {
10+
dict[nums[i]] = dict[nums[i]] ? dict[nums[i]] + 1 : 1;
11+
}
12+
13+
for(let ele in dict) {
14+
sortTable.push([ele, dict[ele]]);
15+
}
16+
sortTable.sort((a, b) => {
17+
return b[1] - a[1];
18+
});
19+
20+
return sortTable.slice(0, k).map(e => Number(e[0]))
21+
};

โ€Žtwo-sum/yuhyeon99.jsโ€Ž

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/**
2+
* ์ •์ˆ˜ ๋ฐฐ์—ด ๋‘ ์ˆซ์ž๋ฅผ ํ•ฉ์ณ์„œ target์˜ ๊ฐ’์ด ๋‚˜์˜ค๊ฒŒ ํ•ด์•ผํ•จ
3+
* ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ๊ธธ์ด๊ฐ€ 2์ธ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•˜์‹œ์˜ค.
4+
* ๊ฐ ์ •์ˆ˜๋Š” ํ•œ ๋ฒˆ์”ฉ๋งŒ ์“ธ ์ˆ˜ ์žˆ์Œ.
5+
*
6+
* @param {number[]} nums
7+
* @param {number} target
8+
* @return {number[]}
9+
*/
10+
var twoSum = function(nums, target) {
11+
const numsMap = new Map();
12+
13+
nums.forEach((num, i) => {
14+
if(!numsMap.has(num)) numsMap.set(num, []);
15+
numsMap.get(num).push(i);
16+
});
17+
18+
for(let i = 0; i < nums.length; i ++) {
19+
for(let j = i + 1; j < nums.length; j ++) {
20+
if(nums[i] + nums[j] === target) {
21+
if(hasMultipleEntries(numsMap.get(nums[i]))) {
22+
return [...numsMap.get(nums[i]).slice(0,2)];
23+
} else {
24+
return [...numsMap.get(nums[i]), ...numsMap.get(nums[j])];
25+
}
26+
}
27+
}
28+
}
29+
30+
return;
31+
};
32+
33+
function hasMultipleEntries(arr) {
34+
return arr.length >= 2;
35+
}

0 commit comments

Comments
ย (0)