diff --git a/merge-intervals/juhui-jeong.java b/merge-intervals/juhui-jeong.java new file mode 100644 index 0000000000..ec92ae8a66 --- /dev/null +++ b/merge-intervals/juhui-jeong.java @@ -0,0 +1,28 @@ +/* + * 시간 복잡도: O(nlogn) + * 공간 복잡도: O(n) + */ +class Solution { + public int[][] merge(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]); + }); + + List merged = new ArrayList<>(); + int[] cur = intervals[0]; + merged.add(cur); + + for (int i = 1; i < intervals.length; i++) { + int[] next = intervals[i]; + + if(cur[1] >= next[0]) { + cur[1] = Math.max(cur[1], next[1]); + } else { + cur = next; + merged.add(cur); + } + } + return merged.toArray(new int[merged.size()][]); + } +} diff --git a/missing-number/juhui-jeong.java b/missing-number/juhui-jeong.java new file mode 100644 index 0000000000..6762315cc9 --- /dev/null +++ b/missing-number/juhui-jeong.java @@ -0,0 +1,31 @@ +/* + * 시간 복잡도: O(n) + * 공간 복잡도: O(1) + */ +class Solution { + public int missingNumber(int[] nums) { + int n = nums.length; + long expected = n * (n + 1) / 2; + long actual = 0; + for (int x : nums) { + actual += x; + } + return (int) (expected - actual); + } +} + +/* + * 시간 복잡도: O(n log n) + * 공간 복잡도: O(1) + */ +class Solution { + public int missingNumber(int[] nums) { + Arrays.sort(nums); + for (int i = 0; i < nums.length; i++) { + if (i != nums[i]) { + return i; + } + } + return nums.length; + } +} diff --git a/reorder-list/juhui-jeong.java b/reorder-list/juhui-jeong.java new file mode 100644 index 0000000000..44d8bcfb50 --- /dev/null +++ b/reorder-list/juhui-jeong.java @@ -0,0 +1,33 @@ +/* + +*/ +class Solution { + public void reorderList(ListNode head) { + List list = new ArrayList<>(); + + while(head != null) { + list.add(head); + head= head.next; + } + + int i = 0; + int j = list.size() -1; + while(i < j) { + ListNode left = list.get(i); + ListNode right = list.get(j); + + left.next = right; + i++; + + if (i == j) { + right.next = null; + break; + } + + right.next = list.get(i); + j--; + } + + list.get(i).next = null; + } +}