Skip to content

[anniemon78] Week 13 #1087

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Mar 8, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
34 changes: 34 additions & 0 deletions kth-smallest-element-in-a-bst/anniemon.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/**
* 시간 복잡도: k번째 수가 가장 큰 수일 때는 최악의 경우이며, 모든 노드를 방문하므로 O(n)
* 공간 복잡도: 재귀 호출 스택의 깊이는 균형 잡힌 트리의 경우 O(logn), 편향된 트리는 O(n)
*/
/**
* 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
* @param {number} k
* @return {number}
*/
var kthSmallest = function(root, k) {
let kth;
let cnt = k;

const dfs = (node) => {
if (!node) return;
dfs(node.left);
cnt--;
if(cnt ===0) {
kth = node.val
return;
}
dfs(node.right);
}
dfs(root)
return kth;
}
30 changes: 30 additions & 0 deletions lowest-common-ancestor-of-a-binary-search-tree/anniemon.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/**
* 시간 복잡도: 트리의 한쪽 경로를 선택하면서 탐색하므로, 트리의 높이가 h면 O(h)
* 공간 복잡도: 재귀 호출 스택의 깊이는 균형 잡힌 트리의 경우 O(logn), 편향된 트리는 O(n) ==> O(h)
*/
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @param {TreeNode} p
* @param {TreeNode} q
* @return {TreeNode}
*/
var lowestCommonAncestor = function(root, p, q) {
const dfs = (node, p, q) => {
if(node.val > p.val && node.val > q.val) {
return dfs(node.left, p, q);
}
if(node.val < p.val && node.val < q.val) {
return dfs(node.right, p, q);
}
return node;
}
return dfs(root, p, q);
};

30 changes: 30 additions & 0 deletions meeting-rooms/anniemon.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/**
* 시간 복잡도: 정렬의 시간 복잡도와 같음. O(nlogn)
* 공간 복잡도: 자바스크립트의 정렬은 Timsort를 사용. 따라서 최악의 경우 공간 복잡도는 O(n)
*/
/**
* Definition of Interval:
* class Interval {
* constructor(start, end) {
* this.start = start;
* this.end = end;
* }
* }
*/

class Solution {
/**
* @param {Interval[]} intervals
* @returns {boolean}
*/
canAttendMeetings(intervals) {
intervals.sort((a,b) => a.start - b.start)

for(let i = 1; i < intervals.length; i++) {
if(intervals[i].start < intervals[i-1].end) {
return false;
}
}
return true;
}
}