Skip to content

Commit 4b2878a

Browse files
committed
문제 추가
1 parent ea83b10 commit 4b2878a

File tree

1 file changed

+34
-0
lines changed
  • find-minimum-in-rotated-sorted-array

1 file changed

+34
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
class `find-minimum-in-rotated-sorted-array` {
2+
3+
/**
4+
* TC: O(log N), SC: O(1)
5+
*/
6+
fun findMin(nums: IntArray): Int {
7+
var (low, high) = 0 to nums.size - 1
8+
9+
while (low + 1 < high) {
10+
val mid = (low + high) / 2
11+
if (nums[mid - 1] > nums[mid]) {
12+
return nums[mid]
13+
}
14+
if (nums[mid] < nums[high]) {
15+
high = mid
16+
}
17+
else {
18+
low = mid
19+
}
20+
}
21+
22+
return min(nums[low], nums[high])
23+
}
24+
25+
@Test
26+
fun `입력받은 정수 배열의 최소 원소를 반환한다`() {
27+
findMin(intArrayOf(4,5,6,7,0,1,2)) shouldBe 0
28+
findMin(intArrayOf(2,3,0,1)) shouldBe 0
29+
findMin(intArrayOf(2,3,1)) shouldBe 1
30+
findMin(intArrayOf(2,1,3)) shouldBe 1
31+
findMin(intArrayOf(2,3,4,5,1)) shouldBe 1
32+
findMin(intArrayOf(11,13,15,17)) shouldBe 11
33+
}
34+
}

0 commit comments

Comments
 (0)