Skip to content

Commit 86366c4

Browse files
committed
sadie100: find minimum in rotated sorted array ํ’€์ด
1 parent 53ba8fc commit 86366c4

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/**
2+
์ด๋ถ„ํƒ์ƒ‰์œผ๋กœ ์ •๋ ฌ ํƒ์ƒ‰. ์ตœ์†Œ๊ฐ’์ด ๋“ค์–ด์žˆ๋Š” ๋ฒ”์œ„๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ณ„์† ์ขํ˜€ ๊ฐ„๋‹ค
3+
์ค‘๊ฐ„๊ฐ’์„ ๊ธฐ์ค€๊ฐ’์œผ๋กœ ์žก๊ณ , ๋งˆ์ง€๋ง‰ ๊ฐ’๋ณด๋‹ค ํฐ์ง€ ์ž‘์€์ง€ ํ™•์ธํ•œ๋‹ค
4+
๊ธฐ์ค€๊ฐ’์ด ๋งˆ์ง€๋ง‰ ๊ฐ’๋ณด๋‹ค ์ž‘์„ ๊ฒฝ์šฐ, ์ตœ์†Œ๊ฐ’์€ ์™ผ์ชฝ ๋ฐ˜์ชฝ์— ์žˆ๊ฑฐ๋‚˜ ๊ธฐ์ค€๊ฐ’์ž„. ex) 5 1 2 3 4
5+
-> range๋ฅผ ์™ผ์ชฝ ๋ฐ˜์ชฝ์œผ๋กœ ์ค„์ด๊ณ (๊ธฐ์ค€๊ฐ’ ํฌํ•จ) ํ•ด๋‹น ์ค‘๊ฐ„๊ฐ’์„ ๊ธฐ์ค€๊ฐ’์œผ๋กœ ์žก๋Š”๋‹ค
6+
๊ธฐ์ค€๊ฐ’์ด ๋งˆ์ง€๋ง‰ ๊ฐ’๋ณด๋‹ค ํด ๊ฒฝ์šฐ, ์ตœ์†Œ๊ฐ’์€ ์˜ค๋ฅธ์ชฝ ๋ฐ˜์ชฝ์— ์žˆ์Œ. ex) 3 4 5 1 2
7+
-> range๋ฅผ ์˜ค๋ฅธ์ชฝ ๋ฐ˜์ชฝ์œผ๋กœ ์ค„์ด๊ณ  ํ•ด๋‹น ์ค‘๊ฐ„๊ฐ’์„ ๊ธฐ์ค€๊ฐ’์œผ๋กœ ์žก๋Š”๋‹ค
8+
9+
์ตœ์ข…์ ์œผ๋กœ start, end๊ฐ€ ๊ฐ™์•„์ง€๋Š” ๊ฐ’์ด ์ตœ์†Œ๊ฐ’์ด ๋œ๋‹ค.
10+
11+
์‹œ๊ฐ„๋ณต์žก๋„ : O(LogN) -> N์€ nums์˜ ๊ฐœ์ˆ˜. ์ด๋ถ„ํƒ์ƒ‰
12+
*/
13+
14+
function findMin(nums: number[]): number {
15+
let start = 0
16+
let end = nums.length - 1
17+
18+
while (start < end) {
19+
let target = Math.floor((start + end) / 2)
20+
if (nums[target] < nums[end]) {
21+
end = target
22+
} else {
23+
start = target + 1
24+
}
25+
}
26+
27+
return nums[start]
28+
}

0 commit comments

Comments
ย (0)