diff --git a/contains-duplicate/Kyojin-Hwang.js b/contains-duplicate/Kyojin-Hwang.js new file mode 100644 index 000000000..d5d17db8a --- /dev/null +++ b/contains-duplicate/Kyojin-Hwang.js @@ -0,0 +1,22 @@ +/** + * @param {number[]} nums + * @return {boolean} + */ +var containsDuplicate = function (nums) { + const map = new Map(); + + for (let num of nums) { + map.set(num, (map.get(num) || 0) + 1); + } + + for (let [_, count] of map) { + if (count > 1) return true; + } + + return false; +}; + +// set 방식으로도 대체가능 +// var containsDuplicate = function(nums) { +// return new Set(nums).size !== nums.length; +// }; diff --git a/top-k-frequent-elements/Kyojin-Hwang.js b/top-k-frequent-elements/Kyojin-Hwang.js new file mode 100644 index 000000000..64d0e7fd3 --- /dev/null +++ b/top-k-frequent-elements/Kyojin-Hwang.js @@ -0,0 +1,23 @@ +/** + * @param {number[]} nums + * @param {number} k + * @return {number[]} + */ +var topKFrequent = function (nums, k) { + const map = new Map(); + const result = []; + + for (let num of nums) { + map.set(num, (map.get(num) || 0) + 1); + } + + const sorted = [...map.entries()] + .sort((a, b) => b[1] - a[1]) // 빈도 기준으로 정렬 + .map((entry) => entry[0]); // 숫자만 추출 + + for (let i = 0; i < k; i++) { + result.push(sorted[i]); + } + + return result; +}; diff --git a/two-sum/Kyojin-Hwang.js b/two-sum/Kyojin-Hwang.js new file mode 100644 index 000000000..d0814e0ef --- /dev/null +++ b/two-sum/Kyojin-Hwang.js @@ -0,0 +1,18 @@ +/** + * @param {number[]} nums + * @param {number} target + * @return {number[]} + */ +var twoSum = function (nums, target) { + const map = new Map(); + + for (let i = 0; i < nums.length; i++) { + const complement = target - nums[i]; + + if (map.has(complement)) { + return [map.get(complement), i]; + } + + map.set(nums[i], i); + } +};