배열이 주어졌을 때 바로 양옆 숫자보다 현재 숫자가 큰 경우,
현재 숫자의 인덱스를 리턴하시오.
int findPeakElem(int [] nums) {
int left = 0;
int right = nums.length - 1; //좌 우 인덱스 초기설정
if (nums.size() <= 1) { //배열크기가 0이면 종료
return 0;
}
while (left < right) { //인덱스가 서로 겹칠 때 까지 반복
int pivot = (left + right) / 2; //이진탐색이므로 중간값을 pivot으로 갖는다
int num = nums[pivot];
int nextNum = nums[pivot + 1];
if (num < nextNum) { //pivot이 오른쪽값보다 작다면
left = pivot + 1; //pivot의 오른쪽에서 다시 중간값을 찾을 준비
} else { //pivot이 오른쪽값보다 크다면
right = pivot; //pivot의 왼쪽에서 다시 중간값을 찾을 준비
}
}
return left;
}