diff --git a/contains-duplicate/b41-41.ts b/contains-duplicate/b41-41.ts new file mode 100644 index 000000000..9d6935160 --- /dev/null +++ b/contains-duplicate/b41-41.ts @@ -0,0 +1,15 @@ +// nums에 중복이 있는 지 확인하는 것 +// array써서 시간 통과 못했다가 Set 객체로 변경해서 통과 +function containsDuplicate(nums: number[]): boolean { + const numSet = new Set(); + + for(let num of nums) { + if(numSet.has(num)) { + return true; + } else { + numSet.add(num); + } + } + + return false; +}; diff --git a/longest-consecutive-sequence/b41-41.ts b/longest-consecutive-sequence/b41-41.ts new file mode 100644 index 000000000..26d008f68 --- /dev/null +++ b/longest-consecutive-sequence/b41-41.ts @@ -0,0 +1,24 @@ +function longestConsecutive(nums: number[]): number { + const sortedNums = [...new Set(nums.sort((a, b) => a - b))]; + const numSet = new Set(); + + let dummy: number[] = []; + + for (let i: number = 0; i < sortedNums.length; i++) { + const isConsecutiveSequence = sortedNums[i + 1] - sortedNums[i] === 1; + const num = sortedNums[i]; + + if(!isConsecutiveSequence) { + dummy.push(num) + numSet.add(dummy.length); + dummy = []; + } else { + dummy.push(num); + } + } + + numSet.add(dummy.length); + + const result = [...numSet].sort((a, b) => Number(b) - Number(a)) as number[]; + return result[0] || 0; +} diff --git a/top-k-frequent-elements/b41-41.ts b/top-k-frequent-elements/b41-41.ts new file mode 100644 index 000000000..231983557 --- /dev/null +++ b/top-k-frequent-elements/b41-41.ts @@ -0,0 +1,17 @@ +function topKFrequent(nums: number[], k: number): number[] { + const numMap = new Map(); + + for (let num of nums) { + if(!numMap.has(num)) { + numMap.set(num, 1); + } else { + const count = Number(numMap.get(num)) || 0; + numMap.set(num, count + 1); + } + } + + const result = [...numMap].sort((a, b) => b[1] - a[1]).map((num) => num[0]).slice(0, k); + + + return result; +}; diff --git a/two-sum/b41-41.ts b/two-sum/b41-41.ts new file mode 100644 index 000000000..90c8e954b --- /dev/null +++ b/two-sum/b41-41.ts @@ -0,0 +1,26 @@ +// 1차 시도 +// function twoSum(nums: number[], target: number): number[] { +// for(const index in nums) { +// for(const index2 in nums) { +// if (index !== index2) { +// if(target === nums[index] + nums[index2]) { +// return [Number(index), Number(index2)] +// } +// } +// } +// } +// }; + +// 2차 시도 +function twoSum(nums: number[], target: number): number[] { + for (const index in nums) { + for (let index2 = Number(index) + 1; index2 < nums.length; index2++) { + if(target === nums[index] + nums[index2]) { + return [Number(index), Number(index2)] + } + } + + } + + return []; +};