Skip to content

Commit a672fcd

Browse files
authored
Merge pull request #1087 from anniemon/main
[anniemon87] Week 13
2 parents ffb9f5b + 767fa15 commit a672fcd

File tree

3 files changed

+94
-0
lines changed

3 files changed

+94
-0
lines changed
+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/**
2+
* 시간 복잡도: k번째 수가 가장 큰 수일 때는 최악의 경우이며, 모든 노드를 방문하므로 O(n)
3+
* 공간 복잡도: 재귀 호출 스택의 깊이는 균형 잡힌 트리의 경우 O(logn), 편향된 트리는 O(n)
4+
*/
5+
/**
6+
* Definition for a binary tree node.
7+
* function TreeNode(val, left, right) {
8+
* this.val = (val===undefined ? 0 : val)
9+
* this.left = (left===undefined ? null : left)
10+
* this.right = (right===undefined ? null : right)
11+
* }
12+
*/
13+
/**
14+
* @param {TreeNode} root
15+
* @param {number} k
16+
* @return {number}
17+
*/
18+
var kthSmallest = function(root, k) {
19+
let kth;
20+
let cnt = k;
21+
22+
const dfs = (node) => {
23+
if (!node) return;
24+
dfs(node.left);
25+
cnt--;
26+
if(cnt ===0) {
27+
kth = node.val
28+
return;
29+
}
30+
dfs(node.right);
31+
}
32+
dfs(root)
33+
return kth;
34+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/**
2+
* 시간 복잡도: 트리의 한쪽 경로를 선택하면서 탐색하므로, 트리의 높이가 h면 O(h)
3+
* 공간 복잡도: 재귀 호출 스택의 깊이는 균형 잡힌 트리의 경우 O(logn), 편향된 트리는 O(n) ==> O(h)
4+
*/
5+
/**
6+
* Definition for a binary tree node.
7+
* function TreeNode(val) {
8+
* this.val = val;
9+
* this.left = this.right = null;
10+
* }
11+
*/
12+
/**
13+
* @param {TreeNode} root
14+
* @param {TreeNode} p
15+
* @param {TreeNode} q
16+
* @return {TreeNode}
17+
*/
18+
var lowestCommonAncestor = function(root, p, q) {
19+
const dfs = (node, p, q) => {
20+
if(node.val > p.val && node.val > q.val) {
21+
return dfs(node.left, p, q);
22+
}
23+
if(node.val < p.val && node.val < q.val) {
24+
return dfs(node.right, p, q);
25+
}
26+
return node;
27+
}
28+
return dfs(root, p, q);
29+
};
30+

meeting-rooms/anniemon.js

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/**
2+
* 시간 복잡도: 정렬의 시간 복잡도와 같음. O(nlogn)
3+
* 공간 복잡도: 자바스크립트의 정렬은 Timsort를 사용. 따라서 최악의 경우 공간 복잡도는 O(n)
4+
*/
5+
/**
6+
* Definition of Interval:
7+
* class Interval {
8+
* constructor(start, end) {
9+
* this.start = start;
10+
* this.end = end;
11+
* }
12+
* }
13+
*/
14+
15+
class Solution {
16+
/**
17+
* @param {Interval[]} intervals
18+
* @returns {boolean}
19+
*/
20+
canAttendMeetings(intervals) {
21+
intervals.sort((a,b) => a.start - b.start)
22+
23+
for(let i = 1; i < intervals.length; i++) {
24+
if(intervals[i].start < intervals[i-1].end) {
25+
return false;
26+
}
27+
}
28+
return true;
29+
}
30+
}

0 commit comments

Comments
 (0)