From 2f16d876eeb0686e88aa377e172b953a10e60e38 Mon Sep 17 00:00:00 2001 From: Nayeon Date: Mon, 21 Apr 2025 10:18:49 +0900 Subject: [PATCH 1/3] Add second solution placeholder for merge two sorted lists --- merge-two-sorted-lists/KwonNayeon.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/merge-two-sorted-lists/KwonNayeon.py b/merge-two-sorted-lists/KwonNayeon.py index 327e16b34..e2338e549 100644 --- a/merge-two-sorted-lists/KwonNayeon.py +++ b/merge-two-sorted-lists/KwonNayeon.py @@ -43,3 +43,5 @@ def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> current.next = list2 return result.next + +# Solution 2 \ No newline at end of file From 108dd8ba771128855653ba2134e940160f90c046 Mon Sep 17 00:00:00 2001 From: Nayeon Date: Mon, 21 Apr 2025 10:21:02 +0900 Subject: [PATCH 2/3] Fix: add missing newline at end of file --- merge-two-sorted-lists/KwonNayeon.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/merge-two-sorted-lists/KwonNayeon.py b/merge-two-sorted-lists/KwonNayeon.py index e2338e549..0403be50c 100644 --- a/merge-two-sorted-lists/KwonNayeon.py +++ b/merge-two-sorted-lists/KwonNayeon.py @@ -4,6 +4,8 @@ 2. -100 <= Node.val <= 100 3. list1 and list2 are sorted in non-decreasing order + + Time Complexity: n과 m이 각각 list1과 list2의 길이를 나타낼 때, O(n + m) - 각 노드를 한 번씩만 방문하기 때문 @@ -44,4 +46,11 @@ def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> return result.next -# Solution 2 \ No newline at end of file +""" + +Time Complexity: + +Space Complexity: + +풀이 방법: +""" From 7e1db34c90cce51415e8d243539329fd868e7f69 Mon Sep 17 00:00:00 2001 From: Nayeon Date: Tue, 22 Apr 2025 17:49:24 +0900 Subject: [PATCH 3/3] improve problem explanation and approach for Find Minimum in Rotated Array --- .../KwonNayeon.py | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/find-minimum-in-rotated-sorted-array/KwonNayeon.py b/find-minimum-in-rotated-sorted-array/KwonNayeon.py index bef237e1b..fc97881fe 100644 --- a/find-minimum-in-rotated-sorted-array/KwonNayeon.py +++ b/find-minimum-in-rotated-sorted-array/KwonNayeon.py @@ -1,10 +1,8 @@ """ -Constraints: -- n == nums.length -- 1 <= n <= 5000 -- -5000 <= nums[i] <= 5000 -- All the integers of nums are unique. -- nums is sorted and rotated between 1 and n times. +Input/Output/Constraints: +- Input: A rotated sorted array (e.g., [4,5,6,7,0,1,2]) +- Output: The minimum element in the array (e.g., 0) +- Constraints: Algorithm must run in O(log n) time Time Complexity: O(log n) - 이진 탐색을 사용하므로 매 단계마다 탐색 범위가 절반으로 줄어듦 @@ -16,19 +14,17 @@ 1. 이진 탐색(Binary Search) 활용 2. mid와 right 값을 비교하여 조건을 나눔 - Case 1: nums[mid] > nums[right] - - 오른쪽 부분이 정렬되어 있지 않음 - 최솟값은 mid 오른쪽에 존재 - left = mid + 1 - Case 2: nums[mid] <= nums[right] - - mid부터 right까지는 정렬되어 있음 - 최솟값은 mid를 포함한 왼쪽에 존재 가능 - right = mid +3. Pivot이 일어난 지점의 값을 반환 """ class Solution: def findMin(self, nums: List[int]) -> int: - left = 0 - right = len(nums) - 1 + left, right = 0, len(nums) - 1 while left < right: mid = (left + right) // 2