From 9a676fd8aa19c17a836b3be3d94274d8a2a7d8df Mon Sep 17 00:00:00 2001 From: juhui Date: Mon, 26 Jan 2026 16:03:26 +0900 Subject: [PATCH 1/4] Solution Week12: same-tree --- same-tree/juhui-jeong.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 same-tree/juhui-jeong.java diff --git a/same-tree/juhui-jeong.java b/same-tree/juhui-jeong.java new file mode 100644 index 0000000000..ffe789c0c6 --- /dev/null +++ b/same-tree/juhui-jeong.java @@ -0,0 +1,12 @@ +/** + * 시간복잡도: O(n) + * 공간복잡도: O(h) + */ +class Solution { + public boolean isSameTree(TreeNode p, TreeNode q) { + if (p == null && q == null) return true; + if (p == null || q == null) return false; + if (p.val != q.val) return false; + return isSameTree(p.left, q.left) && isSameTree(p.right, q.right); + } +} \ No newline at end of file From 8ed1f5930af0bcab193219ecef10877fe42109a8 Mon Sep 17 00:00:00 2001 From: hui Date: Tue, 27 Jan 2026 12:45:58 +0900 Subject: [PATCH 2/4] Fix missing newline at end of juhui-jeong.java Add missing newline at the end of the file. --- same-tree/juhui-jeong.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/same-tree/juhui-jeong.java b/same-tree/juhui-jeong.java index ffe789c0c6..27945a6363 100644 --- a/same-tree/juhui-jeong.java +++ b/same-tree/juhui-jeong.java @@ -9,4 +9,4 @@ public boolean isSameTree(TreeNode p, TreeNode q) { if (p.val != q.val) return false; return isSameTree(p.left, q.left) && isSameTree(p.right, q.right); } -} \ No newline at end of file +} From 542f880c7bf77906f99a931b342fafe48e86dbc6 Mon Sep 17 00:00:00 2001 From: juhui Date: Tue, 27 Jan 2026 15:13:31 +0900 Subject: [PATCH 3/4] Solution Week12:removce-nth-node-from-end-of-list --- .../juhui-jeong.java | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 remove-nth-node-from-end-of-list/juhui-jeong.java diff --git a/remove-nth-node-from-end-of-list/juhui-jeong.java b/remove-nth-node-from-end-of-list/juhui-jeong.java new file mode 100644 index 0000000000..daccaedc02 --- /dev/null +++ b/remove-nth-node-from-end-of-list/juhui-jeong.java @@ -0,0 +1,49 @@ +/* +시간 복잡도: O(N) +공간 복잡도: O(1) +*/ +class Solution { + public ListNode removeNthFromEnd(ListNode head, int n) { + ListNode dummy = new ListNode(0); + dummy.next = head; + + ListNode fast = dummy; + ListNode slow = dummy; + + for (let i = 0; i <= n; i++) { + fast = fast.next; + } + + while(fast != null) { + fast = fast.next; + slow = slow.next; + } + + slow.next = slow.next.next; + + return dummy.next; + } +} + +/* +첫 번째 풀이 +class Solution { + public ListNode removeNthFromEnd(ListNode head, int n) { + List list = new ArrayList<>(); + + while(head != null) { + list.add(head); + head = head.next; + } + + list.remove(list.size()-n); + if (list.isEmpty()) return null; + + for (int i = 0; i < list.size()-1; i++) { + list.get(i).next = list.get(i+1); + } + list.get(list.size()-1).next = null; + return list.get(0); + } +} +*/ From 9483422e7ad8a4045e299ffc17d1ed3bf0f681a1 Mon Sep 17 00:00:00 2001 From: juhui Date: Sat, 31 Jan 2026 11:47:33 +0900 Subject: [PATCH 4/4] Solution Week12:non-overlapping-intervals --- non-overlapping-intervals/juhui-jeong.java | 51 +++++++++++++++++++ .../juhui-jeong.java | 2 +- 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 non-overlapping-intervals/juhui-jeong.java diff --git a/non-overlapping-intervals/juhui-jeong.java b/non-overlapping-intervals/juhui-jeong.java new file mode 100644 index 0000000000..17f7cf9c9b --- /dev/null +++ b/non-overlapping-intervals/juhui-jeong.java @@ -0,0 +1,51 @@ +/* + * 끝나는 시간 오름차순 정렬 + */ +class Solution { + public int eraseOverlapIntervals(int[][] intervals) { + Arrays.sort(intervals, (a,b) -> Integer.compare(a[1], b[1])); + + int removeCntResult = 0; + int end = intervals[0][1]; + + for (int i = 1; i< intervals.length; i++) { + if (intervals[i][0] < end) { + removeCntResult += 1; + } else { + end = intervals[i][1]; + } + } + return removeCntResult; + } +} + + +/* +처음 풀이 +시작 시간 기준 정렬 +class Solution { + public int eraseOverlapIntervals(int[][] intervals) { + Arrays.sort(intervals, (a,b) -> { + if (a[0] != b[0]) return Integer.compare(a[0], b[0]); + return Integer.compare(a[1], b[1]); + }); + + int removeCntResult = 0; + int[] cur = intervals[0]; + + for (int i = 1; i< intervals.length; i++) { + int [] next = intervals[i]; + + if (cur[1] > next[0]) { + removeCntResult += 1; + if (next[1] < cur[1]) { + cur = next; + } + } else { + cur = next; + } + } + return removeCntResult; + } +} + */ diff --git a/remove-nth-node-from-end-of-list/juhui-jeong.java b/remove-nth-node-from-end-of-list/juhui-jeong.java index daccaedc02..79b9a7836b 100644 --- a/remove-nth-node-from-end-of-list/juhui-jeong.java +++ b/remove-nth-node-from-end-of-list/juhui-jeong.java @@ -10,7 +10,7 @@ public ListNode removeNthFromEnd(ListNode head, int n) { ListNode fast = dummy; ListNode slow = dummy; - for (let i = 0; i <= n; i++) { + for (int i = 0; i <= n; i++) { fast = fast.next; }