Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
8beb2b8
217 / Contains Duplicate / easy / 5m
dudwns0213 Sep 24, 2024
6aad3ba
268 / Missing Number / easy / 4m
dudwns0213 Sep 24, 2024
6996b4e
121 / Best Time to Buy and Sell Stock / Easy / 12~15m
dudwns0213 Sep 24, 2024
9617d01
252 / Meeting Room / easy / 8m
dudwns0213 Sep 24, 2024
4cb1102
15 / 3sum / medium / 30~40m
dudwns0213 Sep 24, 2024
bbe8196
242 / Valid Anagram / easy / 7m
dudwns0213 Oct 4, 2024
9889af3
238 / Product of Array Except Self / medium / 15m...
dudwns0213 Oct 4, 2024
fd5783d
191 / Number of 1 Bits / easy / 5m (์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณ€๊ฒฝ 6m?)
dudwns0213 Oct 4, 2024
fb61a46
100 / Same Tree / easy / 8m
dudwns0213 Oct 4, 2024
228e460
746 / Min Cost Climbing Stairs / easy / 30m
dudwns0213 Oct 4, 2024
b17c8eb
49 / Group Anagrams / medium / 3m๐Ÿ˜Ž
dudwns0213 Oct 9, 2024
487a1ab
190 / Reverse Bits / Easy / 10m
dudwns0213 Oct 9, 2024
a0f2beb
125 / Valid Palindrome / easy / 8m
dudwns0213 Oct 9, 2024
5ee16de
322 / Coin Change / medium / 30m?
dudwns0213 Oct 9, 2024
8499b5e
Merge branch 'master' into dudwns0213
dudwns0213 Oct 9, 2024
7dfdd76
Merge branch 'master' into dudwns0213
dudwns0213 Nov 27, 2024
54816ab
102 / Binary Tree Level Order Traversal / Medium / 15m
dudwns0213 Nov 27, 2024
12dee37
572 / Subtree of Another Tree / Easy / 30m
dudwns0213 Nov 27, 2024
1f678aa
213 / House Robber II / Medium / 20m
dudwns0213 Nov 27, 2024
799b679
207 / Course Schedule / Medium / 10m
dudwns0213 Nov 27, 2024
2007a45
56 / Merge Intervals / Medium / 20m
dudwns0213 Nov 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions dudwns0213/9week/102.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} root
* @return {number[][]}
*/

/**
*
* ์ด์ง„ ํŠธ๋ฆฌ์˜ ๋ ˆ๋ฒจ ์ˆœ์„œ ์ˆœํšŒ์— ๊ด€๋ จ๋œ ๋ฌธ์ œ๋ผ๊ณ  ํ•œ๋‹ค...
* ์™ผ์ชฝ ~ ์˜ค๋ฅธ์ชฝ ์ˆœํšŒ ํ›„ ํ•ด๋‹น ๋…ธ๋“œ ๊ฐ’์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜!
*
*/

var levelOrder = function (root) {
if (!root) return [];

const result = [];
const queue = [root];

while (queue.length > 0) {
const level = [];
const levelSize = queue.length;

for (let i = 0; i < levelSize; i++) {
const node = queue.shift();
level.push(node.val);

if (node.left) queue.push(node.left);
if (node.right) queue.push(node.right);
}

result.push(level);
}

return result;
};
42 changes: 42 additions & 0 deletions dudwns0213/9week/207.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/**
* @param {number} numCourses
* @param {number[][]} prerequisites
* @return {boolean}
*/

/**
* ์ˆ˜๊ฐ• ๊ณผ๋ชฉ์˜ ์ˆœ์„œ ์ •ํ•˜๊ธฐ
*
* ์œ„์ƒ ์ •๋ ฌ ๊ฐœ๋…(BFS)์„ ์‚ฌ์šฉํ•ด์„œ ํ’€์–ด์•ผ ํ•œ๋‹ค!
*
* ๊ฐ€๋Šฅ๊ณผ ๋ถˆ๊ฐ€๋Šฅ์˜ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž!
*/

var canFinish = function (numCourses, prerequisites) {
const graph = Array.from({ length: numCourses }, () => []);
const inDegree = Array(numCourses).fill(0);

// ๊ทธ๋ž˜ํ”„ ์ƒ์„ฑ
for (const [course, pre] of prerequisites) {
graph[pre].push(course);
inDegree[course] += 1;
}

const queue = [];
for (let i = 0; i < numCourses; i++) {
if (inDegree[i] === 0) queue.push(i);
}

let count = 0;
while (queue.length > 0) {
const node = queue.shift();
count += 1;

for (const neighbor of graph[node]) {
inDegree[neighbor] -= 1;
if (inDegree[neighbor] === 0) queue.push(neighbor);
}
}

return count === numCourses;
};
27 changes: 27 additions & 0 deletions dudwns0213/9week/213.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/**
* @param {number[]} nums
* @return {number}
*/

// ์ตœ์ ๊ฐ’์ด ๋„ˆ๋ฌด ์–ด๋ ค์›Œ์„œ GPT์™€ ๋ฌธ์ œ ํ’€์ด ์‚ฌ์ดํŠธ์˜ ํž˜์„ ๋นŒ๋ ค๋ดค์–ด์š”...

var rob = function (nums) {
// ์—ฌ๊ธฐ ์ƒ๊ฐ ๋ชป ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ๋‚˜์ค‘์— ์•Œ์•„์„œ ๊ธ‰ํ•˜๊ฒŒ ์ถ”๊ฐ€...
if (nums.length === 1) return nums[0];

const robLinear = (houses) => {
let prev2 = 0;
let prev1 = 0;
for (let money of houses) {
const temp = Math.max(prev1, prev2 + money);
prev2 = prev1;
prev1 = temp;
}
return prev1;
};

return Math.max(
robLinear(nums.slice(1)),
robLinear(nums.slice(0, nums.length - 1))
);
};
37 changes: 37 additions & 0 deletions dudwns0213/9week/56.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/**
* @param {number[][]} intervals
* @return {number[][]}
*/

/**
* intervals ๋ฐฐ์—ด์—์„œ interval[i] = [start, end] ์˜ ๊ฒฝ์šฐ ์‹œ์ž‘์ , ๋ ์ 
* ๊ฒน์น˜๋Š” ๊ตฌ๊ฐ„์„ ๋ณ‘ํ•ฉํ•ด์„œ ๊ฒน์น˜์ง€ ์•Š๋Š” ๊ตฌ๊ฐ„์˜ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ!
*
* ์ •๋ ฌ ํ›„ ๋ณ‘ํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•, ์Šค์œ„ํ•‘์„ ํ•˜๋Š” ๋ฐฉ๋ฒ• 2๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.
*/

var merge = function (intervals) {
if (intervals.length <= 1) return intervals;

intervals.sort((a, b) => a[0] - b[0]);
// ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ

const result = [];

let currentInterval = intervals[0];

for (let i = 1; i < intervals.length; i++) {
const [start, end] = intervals[i];

if (currentInterval[1] >= start) {
currentInterval[1] = Math.max(currentInterval[1], end);
} else {
result.push(currentInterval);
currentInterval = intervals[i];
}
}

result.push(currentInterval);

return result;
};
23 changes: 23 additions & 0 deletions dudwns0213/9week/572.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/**
* @param {TreeNode} root
* @param {TreeNode} subRoot
* @return {boolean}
*/
var isSubtree = function (root, subRoot) {
if (!root) return false; // root๊ฐ€ null์ด๋ฉด false ๋ฐ˜ํ™˜
if (isSameTree(root, subRoot)) return true; // ํ˜„์žฌ ๋…ธ๋“œ์—์„œ ๋™์ผํ•œ ํŠธ๋ฆฌ์ธ์ง€ ํ™•์ธ
return isSubtree(root.left, subRoot) || isSubtree(root.right, subRoot); // ์™ผ์ชฝ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ์—์„œ ์ฐพ๊ธฐ
};

// ๋‘ ํŠธ๋ฆฌ๊ฐ€ ๋™์ผํ•œ์ง€ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜
var isSameTree = function (tree1, tree2) {
if (!tree1 && !tree2) return true; // ๋‘˜ ๋‹ค null์ด๋ฉด ๋™์ผ
if (!tree1 || !tree2 || tree1.val !== tree2.val) return false; // ๊ฐ’์ด ๋‹ค๋ฅด๊ฑฐ๋‚˜ ํ•œ์ชฝ์ด null์ด๋ฉด ๋‹ค๋ฆ„
return (
isSameTree(tree1.left, tree2.left) && isSameTree(tree1.right, tree2.right)
); // ์ขŒ/์šฐ ์ž์‹ ๋น„๊ต
};

/**
* ๋ฌธ์ œ๋ฅผ ํ‘ผ ๋‹ค์Œ GPT์—๊ฒŒ ํ•œ ์ค„์”ฉ ํ•ด์„์„ ๋ถ€ํƒํ–ˆ์Šต๋‹ˆ๋‹ค...
*/
Loading