Skip to content

Commit 0ae0a33

Browse files
authored
Merge pull request #1137 from jeongwoo903/main
[jeongwoo903] WEEK 01 solutions
2 parents cd4e26b + 054993d commit 0ae0a33

File tree

5 files changed

+95
-0
lines changed

5 files changed

+95
-0
lines changed

contains-duplicate/jeongwoo903.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+
6+
var containsDuplicate = function(nums) {
7+
const originalLength = nums.length;
8+
const parsedLength = new Set(nums).size;
9+
10+
return originalLength !== parsedLength;
11+
};

house-robber/jeongwoo903.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+
* @return {number}
4+
*/
5+
6+
// dp 개념을 이용
7+
8+
var rob = function(nums) {
9+
if(nums.length == 0) { return 0 };
10+
if(nums.length == 1) { return nums[0] };
11+
12+
nums[1] = Math.max(nums[0], nums[1]);
13+
14+
for(let i = 2; i < nums.length; i++) {
15+
nums[i] = Math.max(nums[i-2] + nums[i], nums[i-1])
16+
}
17+
18+
return nums[nums.length - 1];
19+
};
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+
6+
var longestConsecutive = function(nums) {
7+
if (nums.length <= 1) return nums.length;
8+
9+
const sortedArray = [...new Set(nums)].sort((a,b) => a - b);
10+
11+
let maxLength = 1;
12+
let currentLength = 1;
13+
14+
for (let i = 1; i < sortedArray.length; i++) {
15+
if (sortedArray[i] === sortedArray[i-1] + 1) {
16+
currentLength++;
17+
} else {
18+
currentLength = 1;
19+
}
20+
21+
maxLength = Math.max(maxLength, currentLength);
22+
}
23+
24+
return maxLength;
25+
};
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} k
4+
* @return {number[]}
5+
*/
6+
var topKFrequent = function(nums, k) {
7+
// Map을 통해 nums의 담긴 숫자들의 빈번함을 정리함.
8+
const frequencyMap = nums.reduce((map, num) => {
9+
map.set(num, (map.get(num) || 0) + 1);
10+
return map;
11+
}, new Map());
12+
13+
// 빈도수를 기준으로 정렬하여 답을 유도함.
14+
const result = Array.from(frequencyMap.entries())
15+
.sort((a, b) => b[1] - a[1])
16+
.slice(0, k)
17+
.map(item => item[0]);
18+
19+
return result;
20+
};

two-sum/jeongwoo903.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} target
4+
* @return {number[]}
5+
*/
6+
var twoSum = function(nums, target) {
7+
const numMap = new Map();
8+
9+
for (let i= 0 ; i < nums.length ; i++ ) {
10+
let complement = target - nums[i];
11+
12+
if (numMap.has(complement)) {
13+
return [numMap.get(complement), i];
14+
}
15+
16+
numMap.set(nums[i], i);
17+
}
18+
19+
return [];
20+
};

0 commit comments

Comments
 (0)