File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed
find-minimum-in-rotated-sorted-array Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ๋ฐฐ์ด์ด 1~n๋ฒ ํ์ ๋ ์ํ์์ ์ต์๊ฐ์ ์ฐพ๋ ๋ฌธ์
3
+ * ๋ฌธ์ ํต์ฌ:
4
+ * 1. ๋ฐฐ์ด์ ์๋ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์ด ์์์
5
+ * 2. ๊ทธ ๋ฐฐ์ด์ด 1~n๋ฒ ํ์ ๋์์
6
+ * 3. ์ต์๊ฐ์ O(log n) ์๊ฐ ๋ณต์ก๋๋ก ์ฐพ์์ผ ํจ
7
+ *
8
+ * => ์ด ๋ฌธ์ ๋ ํ์ ๋ ๋ฐฐ์ด์์ ์ต์๊ฐ์ ์ฐพ์์ผ ํจ
9
+ * => ์ต์๊ฐ์ pivot ํฌ์ธํธ(ํ์ ์ด ์ผ์ด๋ ์ง์ )์์ ๋ฐ๊ฒฌ๋จ
10
+ */
11
+
12
+ /**
13
+ * @param {number[] } nums - ํ์ ๋ ์ ๋ ฌ ๋ฐฐ์ด
14
+ * @return {number } - ๋ฐฐ์ด์ ์ต์๊ฐ
15
+ */
16
+ var findMin = function ( nums ) {
17
+ let left = 0 ; // ๊ฒ์๋ฒ์์ ์์ ์ธ๋ฑ์ค
18
+ let right = nums . length - 1 ; // ๊ฒ์๋ฒ์์ ๋ ์ธ๋ฑ์ค
19
+
20
+ // ์ด์ง ํ์
21
+ while ( left < right ) {
22
+ const mid = Math . floor ( ( left + right ) / 2 ) ;
23
+
24
+ // ์ค๊ฐ ๊ฐ์ด ์ค๋ฅธ์ชฝ ๋ ๊ฐ๋ณด๋ค ํฌ๋ฉด, ์ต์๊ฐ์ ์ค๋ฅธ์ชฝ์ ์์
25
+ if ( nums [ mid ] > nums [ right ] ) {
26
+ left = mid + 1 ;
27
+ }
28
+ // ์ค๊ฐ ๊ฐ์ด ์ค๋ฅธ์ชฝ ๋ ๊ฐ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด, ์ต์๊ฐ์ ์ผ์ชฝ์ ์์ (์ค๊ฐ ํฌํจ)
29
+ else {
30
+ right = mid ;
31
+ }
32
+ }
33
+
34
+ // ๋ฐ๋ณต์ด ๋๋๋ฉด left์ right๋ ๊ฐ์ ์ธ๋ฑ์ค์ ๊ฐ๋ฆฌํค๊ณ , ์ด ์ธ๋ฑ์ค์ ๊ฐ(ํผ๋ดํฌ์ธํธ) = ์ต์๊ฐ์ ์์น
35
+ return nums [ left ] ;
36
+ } ;
You canโt perform that action at this time.
0 commit comments