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