Skip to content

Commit bcc02f2

Browse files
authored
Merge pull request #567 from Sunjae95/main
[์„ ์žฌ] WEEK 12 Solution
2 parents 5d40ea4 + f493e8a commit bcc02f2

File tree

3 files changed

+86
-0
lines changed

3 files changed

+86
-0
lines changed

โ€Žmerge-intervals/sunjae95.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/**
2+
* @description
3+
* ๊ฐ intervals์˜ ์‹œ์ž‘์ ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ ํ›„ tmp์˜ end์™€ ๊ฐ start๋ฅผ ๋น„๊ตํ•˜์—ฌ ํ’€์ด
4+
*
5+
* n = length of intervals
6+
* time complexity: O(n log n)
7+
* space complexity: O(n)
8+
*/
9+
var merge = function (intervals) {
10+
intervals.sort((a, b) => a[0] - b[0]);
11+
12+
const answer = [];
13+
let mergeTmp = intervals[0];
14+
15+
for (let i = 1; i < intervals.length; i++) {
16+
const [start, end] = intervals[i];
17+
18+
if (mergeTmp[1] >= start) mergeTmp[1] = Math.max(mergeTmp[1], end);
19+
else {
20+
answer.push(mergeTmp);
21+
mergeTmp = [start, end];
22+
}
23+
}
24+
25+
answer.push(mergeTmp);
26+
27+
return answer;
28+
};
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/**
2+
* @description
3+
* ์ „์ฒด ๋…ธ๋“œ์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•œ ๋’ค n์— ์ ํ•ฉํ•œ ๋…ธ๋“œ๋งŒ ๊ฑด๋„ˆ๋›ฐ์–ด ๋…ธ๋“œ๋ฅผ ์žฌ๋ฐฐ์—ด ์‹œ์ผœ์คŒ
4+
*
5+
* n = total length of head node list
6+
* time complexity: O(n)
7+
* space complexity: O(n)
8+
*/
9+
var removeNthFromEnd = function (head, n) {
10+
let node;
11+
let nodeCount = 0;
12+
13+
node = head;
14+
while (node) {
15+
nodeCount++;
16+
node = node.next;
17+
}
18+
19+
let answer = new ListNode();
20+
let answerNode = answer;
21+
22+
node = head;
23+
for (let i = 0; i < nodeCount; i++) {
24+
if (nodeCount - n === i) {
25+
i++;
26+
node = node.next;
27+
}
28+
29+
answerNode.next = node;
30+
answerNode = node;
31+
32+
node = node?.next ?? null;
33+
}
34+
35+
return answer.next;
36+
};

โ€Žsame-tree/sunjae95.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/**
2+
* @description
3+
* ๋‘๊ฐœ์˜ ํŠธ๋ฆฌ๋ฅผ ๋™์‹œ์— ์ˆœํšŒํ•œ๋‹ค๋ฅผ ์ดˆ์ ์œผ๋กœ ๋ฌธ์ œ์ ‘๊ทผํ•˜์—ฌ ํ’€์ด
4+
*
5+
* n = minimum tree node count of p or q
6+
* time complexity: O(n)
7+
* space complexity: O(1)
8+
*/
9+
var isSameTree = function (p, q) {
10+
const preOrder = (tree1, tree2) => {
11+
if (!tree1 && !tree2) return true;
12+
if (!tree1 || !tree2) return false;
13+
14+
if (tree1.val !== tree2.val) return false;
15+
if (!preOrder(tree1.left, tree2.left)) return false;
16+
if (!preOrder(tree1.right, tree2.right)) return false;
17+
18+
return true;
19+
};
20+
21+
return preOrder(p, q);
22+
};

0 commit comments

Comments
ย (0)