Search Insert Position

-
문제 풀이
- 주어진 배열에서 target과 같은 번째에 있는 값을 리턴하거나 없으면 몇번째 순서에 들어가는지 return하는 문제이다.
- 문제에서 0(log n)이라는것을 명시했다.
- 이진탐색을 수행하였다.
- 이전문제에서 이진탐색을 다룬적이 있어서 그 방식으로 문제를 해결했다.
-
풀이 소스
class Solution {
public int searchInsert(int[] nums, int target) {
int left = 0;
int right = nums.length-1;
while(left <= right){
int mid = (left+right)/2;
if(nums[mid]== target){
return mid;
}else if(nums[mid] > target){
right = mid -1;
}else{
left = mid+1;
}
}
return left;
}
}
오늘의 회고
문제 시도 및 해결
- 이진탐색의 left와 right를 각각 길이에 맞게 선언해준다.
- 반복문을 통해 mid인 중간지점에 대해 값을 비교한다.
- 배열[mid]값이 target보다 크면 right를 mid -1로 선언하고 target보다 작으면 left를 mid+1로 선언하여 다시 반복문을 돌린다.
- 배열에 target에 맞는 조건이 없을때 left의 최종값을 return한다.
학습 내용 및 회고
- 이진탐색을 다시 한번 상기시킬 수 있어서 좋았다.
다음 배울것