Skip to content
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
30 changes: 30 additions & 0 deletions non-overlapping-intervals/byol-han.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/**
* https://leetcode.com/problems/non-overlapping-intervals/description/
* @param {number[][]} intervals
* @return {number}
*/
var eraseOverlapIntervals = function (intervals) {
if (intervals.length === 0) return 0;

// 1. intervals를 end 값을 기준으로 오름차순 정렬
intervals.sort((a, b) => a[1] - b[1]);

// 2. 첫 번째 interval의 end 값으로 초기화
let end = intervals[0][1];
let count = 0; // 제거해야 하는 interval의 개수

// 3. 두 번째 interval부터 순회
for (let i = 1; i < intervals.length; i++) {
let [start_i, end_i] = intervals[i];

if (start_i < end) {
// 현재 interval의 start가 이전 end보다 작으면 overlap
count++; // 이 interval은 제거해야 함
} else {
// overlap이 없으면 end 갱신
end = end_i;
}
}

return count;
};
40 changes: 40 additions & 0 deletions remove-nth-node-from-end-of-list/byol-han.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/**
* https://leetcode.com/problems/remove-nth-node-from-end-of-list/submissions/1672151418/
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} head
* @param {number} n
* @return {ListNode}
*/
var removeNthFromEnd = function (head, n) {
// dummy 노드를 만들어 head 앞에 두기 (edge case: 첫 번째 노드를 제거할 때 편리)
let dummy = new ListNode(0);
dummy.next = head;

// fast와 slow 포인터를 dummy에서 시작
let fast = dummy;
let slow = dummy;

// fast 포인터를 n+1 만큼 앞으로 이동시킴
// (slow가 제거 노드의 바로 이전 노드에 멈추도록 하기 위함)
for (let i = 0; i < n + 1; i++) {
fast = fast.next;
}

// fast와 slow를 함께 끝까지 이동
while (fast !== null) {
fast = fast.next;
slow = slow.next;
}

// slow.next가 제거할 노드이므로, 그 노드를 skip
slow.next = slow.next.next;

// dummy.next가 새 head
return dummy.next;
};
1 change: 1 addition & 0 deletions same-tree/byol-han.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/**
* WEEK12
* https://leetcode.com/problems/same-tree/description/
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
Expand Down