Skip to content

Commit 384138b

Browse files
authored
Merge pull request #1707 from yg-cho/main
[Yg-cho] WEEK 01 Solutions
2 parents d829793 + 6aaeaa3 commit 384138b

File tree

4 files changed

+74
-0
lines changed

4 files changed

+74
-0
lines changed

contains-duplicate/Yg-cho.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {boolean}
4+
*/
5+
var containsDuplicate = function(nums) {
6+
return new Set(nums).size !== nums.length;
7+
};
8+
9+
//console.log(containsDuplicate([1, 2, 3, 1])); // true
10+
// console.log(containsDuplicate([1, 2, 3, 4])); // false
11+
// console.log(containsDuplicate([1, 1, 1, 3, 3, 4, 3, 2, 4, 2])); // true
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 === 0) return 0;
7+
8+
const numSet = new Set(nums);
9+
let longest = 0;
10+
11+
for (const num of numSet) {
12+
if(!numSet.has(num-1)) {
13+
let currentNum = num;
14+
let currentLength = 1;
15+
16+
while(numSet.has(currentNum+1)) {
17+
currentNum++;
18+
currentLength++;
19+
}
20+
21+
longest = Math.max(longest, currentLength)
22+
}
23+
}
24+
return longest;
25+
};

top-k-frequent-elements/Yg-cho.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+
* @param {number} k
4+
* @return {number[]}
5+
*/
6+
var topKFrequent = function(nums, k) {
7+
//HashMap 선언
8+
const counter = new Map()
9+
10+
//HashMap에 빈도를 value로 저장
11+
for(const num of nums){
12+
counter.set(num,(counter.get(num)|| 0) +1);
13+
}
14+
15+
//keys를 가져와 정렬 후, k만큼 -slice 리턴
16+
return [...counter.keys()]
17+
.sort((a,b) => counter.get(a) - counter.get(b))
18+
.slice(-k)
19+
};

two-sum/Yg-cho.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+
* @param {number} target
4+
* @return {number[]}
5+
*/
6+
var twoSum = function(nums, target) {
7+
for(var i = 0; i < nums.length; i++){
8+
let getNum = target - nums[i];
9+
let foundIndex = nums.indexOf(getNum);
10+
11+
// foundIndex가 존재하고(-1이 아니고), 자기 자신이 아닌 경우
12+
if(foundIndex !== -1 && foundIndex !== i) {
13+
return [i, foundIndex];
14+
}
15+
}
16+
};
17+
console.log(twoSum([2, 7, 11, 15], 9)); // [0, 1]
18+
console.log(twoSum([3, 2, 4], 6)); // [1, 2]
19+
console.log(twoSum([3, 3], 6)); // [0, 1]

0 commit comments

Comments
 (0)