Skip to content

Commit 9a129c6

Browse files
authored
Merge pull request #2369 from Cyjin-jani/main
[Cyjin-jani] WEEK 01 solutions
2 parents 7d1cde7 + 7bdd0d1 commit 9a129c6

5 files changed

Lines changed: 74 additions & 0 deletions

File tree

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
const containsDuplicate = function (nums) {
2+
const data = new Set(nums);
3+
return data.size !== nums.length;
4+
};

โ€Žhouse-robber/Cyjin-jani.jsโ€Ž

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
const rob = function (nums) {
2+
// ์ตœ๋Œ€ ๋ˆ„์ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด
3+
const data = [];
4+
data[0] = nums[0];
5+
6+
for (let i = 1; i < nums.length; i++) {
7+
data[i] = Math.max(data[i - 1], (data[i - 2] ?? 0) + nums[i]);
8+
}
9+
10+
return data[data.length - 1];
11+
};
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
var longestConsecutive = function (nums) {
2+
// ์ˆซ์ž ์กด์žฌ ์œ ๋ฌด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์„ธํŒ…
3+
const dataSet = new Set(nums);
4+
let answer = 0;
5+
6+
// ์ „์ฒด ์ˆซ์ž๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ์‹œ์ž‘์ ์„ ํ™•์ธ
7+
for (let num of dataSet) {
8+
// num - 1์ด dataSet์— ์žˆ๋Š”์ง€ ํ™•์ธ. ์žˆ๋‹ค๋ฉด ์‹œ์ž‘์ ์ด ์•„๋‹ˆ๋ฏ€๋กœ ํŒจ์Šค
9+
if (!dataSet.has(num - 1)) {
10+
// ์—†๋‹ค๋ฉด ์‹œ์ž‘์ . ์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ ์—ฐ์†๋œ ์ˆซ์ž๊ฐ€ ์–ผ๋งˆ๋‚˜ ์žˆ๋Š”์ง€ ์นด์šดํŒ….
11+
let count = 1;
12+
let target = num;
13+
while (dataSet.has(target + 1)) {
14+
count++;
15+
target++;
16+
}
17+
// longest๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋ฏ€๋กœ max๋กœ ๋” ๊ธด ๋‹ต์„ ํŒ๋‹จ
18+
answer = Math.max(count, answer);
19+
}
20+
}
21+
return answer;
22+
};
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
const topKFrequent = function (nums, k) {
2+
const tempArr = Array.from({ length: nums.length }, () => []);
3+
const obj = {};
4+
5+
for (let num of nums) {
6+
obj[num] = (obj[num] || 0) + 1;
7+
}
8+
9+
for (let key in obj) {
10+
const val = obj[key] - 1;
11+
tempArr[val].push(+key);
12+
}
13+
14+
// answer.flat(), return answer.slice(-k) ๋Œ€์‹  ์ข€ ๋” ์ตœ์ ํ™”๋œ ์ฝ”๋“œ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
15+
const answer = [];
16+
for (let i = tempArr.length - 1; i >= 0; i--) {
17+
for (let num of tempArr[i]) {
18+
answer.push(num);
19+
if (answer.length === k) return answer;
20+
}
21+
}
22+
return answer;
23+
};

โ€Žtwo-sum/Cyjin-jani.jsโ€Ž

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
const twoSum = function (nums, target) {
2+
let memo = {};
3+
4+
for (let i = 0; i < nums.length; i++) {
5+
let current = nums[i];
6+
let needed = target - current;
7+
8+
if (needed in memo) {
9+
return [memo[needed], i];
10+
}
11+
12+
memo[current] = i;
13+
}
14+
};

0 commit comments

Comments
ย (0)