From 609e3c717f773be1ca294812b5cf2bd86c6efca0 Mon Sep 17 00:00:00 2001 From: Robin Yoon Date: Mon, 2 Mar 2026 16:38:50 +0900 Subject: [PATCH 1/3] contains duplicate solution --- contains-duplicate/robinyoon-dev.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 contains-duplicate/robinyoon-dev.js diff --git a/contains-duplicate/robinyoon-dev.js b/contains-duplicate/robinyoon-dev.js new file mode 100644 index 0000000000..ab6044ea70 --- /dev/null +++ b/contains-duplicate/robinyoon-dev.js @@ -0,0 +1,17 @@ +/** + * @param {number[]} nums + * @return {boolean} + */ +var containsDuplicate = function(nums) { + let arrToSet = new Set(nums); + + const originalLength = nums.length; + const filteredLength = arrToSet.size; + + if(originalLength === filteredLength){ + return false; // 겹치는 숫자가 없는 경우 + } else { + return true; // 겹치는 숫자가 있는 경우 + } + +}; From 5534d22aa568d6919cea7e4e247a9f3d223fbaf9 Mon Sep 17 00:00:00 2001 From: Robin Yoon Date: Tue, 3 Mar 2026 15:00:01 +0900 Subject: [PATCH 2/3] two some solution --- two-sum/robinyoon-dev.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 two-sum/robinyoon-dev.js diff --git a/two-sum/robinyoon-dev.js b/two-sum/robinyoon-dev.js new file mode 100644 index 0000000000..a528c1d951 --- /dev/null +++ b/two-sum/robinyoon-dev.js @@ -0,0 +1,21 @@ +/** + * @param {number[]} nums + * @param {number} target + * @return {number[]} + */ +var twoSum = function (nums, target) { + for (let i = 0; i < nums.length; i++) { + let remaindedNum = target - nums[i]; + let matchedNum = nums.find((item) => remaindedNum === item); + let matchedNumIndex = nums.indexOf(matchedNum, i + 1); + // i와 matchedNumIndex 이 같은 숫자면 안 됨. + if (i === matchedNumIndex) { + continue; + } else if (matchedNumIndex === -1) { + continue; + } + else { + return [i, matchedNumIndex]; + } + } +}; From 527367f65f0bb05393d6421350782941daae3775 Mon Sep 17 00:00:00 2001 From: Robin Yoon Date: Wed, 4 Mar 2026 09:52:53 +0900 Subject: [PATCH 3/3] top k frequent elements solution --- top-k-frequent-elements/robinyoon-dev.js | 33 ++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 top-k-frequent-elements/robinyoon-dev.js diff --git a/top-k-frequent-elements/robinyoon-dev.js b/top-k-frequent-elements/robinyoon-dev.js new file mode 100644 index 0000000000..429bea1452 --- /dev/null +++ b/top-k-frequent-elements/robinyoon-dev.js @@ -0,0 +1,33 @@ +/** + * @param {number[]} nums + * @param {number} k + * @return {number[]} + */ +var topKFrequent = function(nums, k) { + let numsMap = new Map(); + + for (let i = 0; i < nums.length; i++) { + // 1. numsMap에 nums[i]가 key로 있나 확인 + // 1-1. 있으면 nums[i]와 동일한 key를 찾은 후 value에 +1 + // 1-2. 없으면 새로 생성 & value를 1로. + let hasNum = numsMap.has(nums[i]); + if (hasNum) { + numsMap.set(nums[i], numsMap.get(nums[i]) + 1); + } else { + numsMap.set(nums[i], 1); + } + } + + // 2. numsMap을 배열로 변경 (mapToArr) + // 3. mapToArr에서 value가 가장 놓은 순대로 sort + // 4. mapToArr를 k개 까지만 잘라낸 후 + // 5. mapToArr의 각 아이템의 0번째 값만 추출하여 새로운 배열 만들고 return + let mapToArr = Array.from(numsMap); + + mapToArr.sort((a, b) => b[1] - a[1]); + + const slicedMapToArr = mapToArr.slice(0, k); + const result = slicedMapToArr.map((item) => item[0]); + + return result; +};