시간복잡도 O(n) 풀이 방법

function rotatedArraySearch(arr, target) {
	for(let i=0; i<arr.length; i++) {
		if(arr[i] === target) {
			return i;
		}
	}
	// target이 없는 경우
	return - 1;
}

indexOf 메서드를 이용한 풀이

function rotatedArraySearch(arr, target) {
	if(!arr.includes(target)) {
		return - 1;
	}
	return arr.indexOf(target);
}

시간복잡도 O(logN) 풀이 방법

function rotatedArraySearch(arr, target) {
	let left = 0;
	let right = arr.length - 1;

	while(left <= right) {
		let mid = Math.floor((left + right) / 2);

		if(target === arr[mid]) {
			return mid;
		}

		// arr[left]가 arr[mid]보다 작은경우
		if(arr[left] < arr[mid]) {
			// target이 arr[left]보다 크거나 같고 arr[mid]보다 작다
			if(target >= arr[left] && target < arr[mid]) {
				// right 이동
				right = mid - 1;
			} else {
					left = mid + 1;
				}
		} else {
				// target이 arr[mid]보다 크고 arr[right]보다 작거나 같다.
				if(target > arr[mid] && target <= arr[right]) {
					// left 이동
					left = mid + 1;
				} else {
						right = mid - 1;
					}
			}
	}
	// target이 없는 경우
	return -1;
}