Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자바 5464
- 리트코드 1557
- 코딩테스트
- 코테
- leetcode
- java leetcode
- DP
- 분할정복
- Java
- 프로그래머스
- 카카오
- 그래프 자바
- java 프로그래머스
- 자바
- 스프링 에러
- 인텔리제이 에러
- 파이썬
- BFS
- 구현
- 백준
- 백준 18222
- 프로그래머스 java
- 리트코드
- dfs
- 백준 16935
- 리트코드 자바
- 자바 리트코드
- daily challenge
- 스택
- leetcode 1721
Archives
- Today
- Total
레벨업 일지
[Java/Python3] leetcode 35. Search Insert Position 본문
문제
https://leetcode.com/problems/search-insert-position/description/
이진 탐색을 할줄 아니? 물어보는 문제
풀이
정렬된 배열에서의 이진 탐색 알고리즘은 다음과 같다. 자주 사용되는 O ( lon N ) 로직임으로, 아직 모른다면 꼭 공부 해야한다.
1. left = 0 , right = nums.length -1 로 양 끝단 위치를 가리키는 포인터를 생성한다.
2. left 와 right 의 절반 지점에 있는 mid 포인터를 생성.
3. mid < target 이면, [ left .. mid ] 범위 안에는 target이 존재하지 않음으로, left = mid + 1
4. mid > target 이면, [mid .. right] 범위 안에 target이 존재하지 않음으로 날린다 .
5. mid == target이면 return mid
6. 그게 아니면 , left 를 리턴한다.
코드
자바
class Solution {
public int searchInsert(int[] nums, int target) {
int left = 0;
int right = nums.length-1;
int mid = left + (right - left)/2;
while(left <=right){
mid = left + (right - left)/2;
if(nums[mid] == target)return mid;
else if(nums[mid] < target) left = mid+1;
else right = mid-1;
}
return left;
}
}
파이썬
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
left = 0
right = len(nums)-1
while left <= right:
mid = left + (right-left)//2
if nums[mid] == target : return mid
elif nums[mid] < target : left = mid + 1
else : right = mid -1
return left
'알고리즘 > leetcode' 카테고리의 다른 글
[Java/Python ] leetcode 136. Single Number (0) | 2023.01.21 |
---|---|
[Java] leetcode 93. Restore IP Addresses (0) | 2023.01.21 |
[Java/Python3] leetcode 300. Longest Increasing Subsequence (0) | 2023.01.15 |
[java/python3]leetcode 1838. Frequency of the Most Frequent Element (2) | 2023.01.11 |
[java/python3] leetcode 259. 3Sum Smaller (0) | 2023.01.10 |
Comments