diff --git a/contains-duplicate/Yg-cho.js b/contains-duplicate/Yg-cho.js new file mode 100644 index 000000000..f2accc36e --- /dev/null +++ b/contains-duplicate/Yg-cho.js @@ -0,0 +1,11 @@ +/** + * @param {number[]} nums + * @return {boolean} + */ +var containsDuplicate = function(nums) { + return new Set(nums).size !== nums.length; +}; + +//console.log(containsDuplicate([1, 2, 3, 1])); // true +// console.log(containsDuplicate([1, 2, 3, 4])); // false +// console.log(containsDuplicate([1, 1, 1, 3, 3, 4, 3, 2, 4, 2])); // true diff --git a/longest-consecutive-sequence/Yg-cho.js b/longest-consecutive-sequence/Yg-cho.js new file mode 100644 index 000000000..7a0006fa1 --- /dev/null +++ b/longest-consecutive-sequence/Yg-cho.js @@ -0,0 +1,25 @@ +/** + * @param {number[]} nums + * @return {number} + */ +var longestConsecutive = function(nums) { + if(nums.length === 0) return 0; + + const numSet = new Set(nums); + let longest = 0; + + for (const num of numSet) { + if(!numSet.has(num-1)) { + let currentNum = num; + let currentLength = 1; + + while(numSet.has(currentNum+1)) { + currentNum++; + currentLength++; + } + + longest = Math.max(longest, currentLength) + } + } + return longest; +}; diff --git a/top-k-frequent-elements/Yg-cho.js b/top-k-frequent-elements/Yg-cho.js new file mode 100644 index 000000000..bf88be2ec --- /dev/null +++ b/top-k-frequent-elements/Yg-cho.js @@ -0,0 +1,19 @@ +/** + * @param {number[]} nums + * @param {number} k + * @return {number[]} + */ +var topKFrequent = function(nums, k) { + //HashMap 선언 + const counter = new Map() + + //HashMap에 빈도를 value로 저장 + for(const num of nums){ + counter.set(num,(counter.get(num)|| 0) +1); + } + + //keys를 가져와 정렬 후, k만큼 -slice 리턴 + return [...counter.keys()] + .sort((a,b) => counter.get(a) - counter.get(b)) + .slice(-k) +}; diff --git a/two-sum/Yg-cho.js b/two-sum/Yg-cho.js new file mode 100644 index 000000000..9c4899c8f --- /dev/null +++ b/two-sum/Yg-cho.js @@ -0,0 +1,19 @@ +/** + * @param {number[]} nums + * @param {number} target + * @return {number[]} + */ +var twoSum = function(nums, target) { + for(var i = 0; i < nums.length; i++){ + let getNum = target - nums[i]; + let foundIndex = nums.indexOf(getNum); + + // foundIndex가 존재하고(-1이 아니고), 자기 자신이 아닌 경우 + if(foundIndex !== -1 && foundIndex !== i) { + return [i, foundIndex]; + } + } +}; +console.log(twoSum([2, 7, 11, 15], 9)); // [0, 1] +console.log(twoSum([3, 2, 4], 6)); // [1, 2] +console.log(twoSum([3, 3], 6)); // [0, 1]