
부분적으로 오름차순 정렬*된 정수의 배열(rotated)과 정수(target)를 입력받아 target의 인덱스를 리턴해야 합니다.
let output = rotatedArraySearch([4, 5, 6, 0, 1, 2, 3], 2);
console.log(output); // --> 5
output = rotatedArraySearch([4, 5, 6, 0, 1, 2, 3], 100);
console.log(output); // --> -1
const rotatedArraySearch = function (rotated, target) {
// TODO : 여기에 코드를 작성합니다.
let start = 0; // 시작 지점
let end = rotated.length - 1;
let mid;
while (start <= end) {
mid = Math.floor((start + end) / 2)
if (rotated[mid] === target) {
return mid;
}
if (rotated[start] <= rotated[mid]) { //왼쪽 절반이 정렬되어 있으면
if (rotated[start] <= target && target <= rotated[mid]) {
end = mid - 1;
} else {
start = mid + 1;
}
} else { //오른쪽 절반이 정렬되어 있으면
if (rotated[mid] <= target && target <= rotated[end]) {
start = mid + 1;
} else {
end = mid - 1;
}
}
}
return -1;
};