반응형
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 | 31 |
Tags
- 파이데이아창의인재학과
- 유학생 준비물
- 비전공자 git
- 자바 스터디
- California State University Sacramento
- 케네스
- 미국유학생
- 복수학위제도
- 만다라트프로젝트
- 미국대학
- 2+2
- 미국유학생활
- JVM아키텍처
- CSUS
- 해외유학
- 개인 프로젝트 개발일지
- F1학생비자
- Java 스터디
- 자바
- 케네스로그
- java
- Kenneth Park
- 미국유학
- jpa
- 미국대학생활
- 사이드프로젝트
- 개발일지
- 부산외대
- 유학생대학생활
- i-20
Archives
- Today
- Total
케네스로그
[리트코드/자바] 35. Search Insert Position 본문
반응형
문제
중복되지 않는 정수로 이루어진 정렬된 배열 nums에 새로운 정수 target을 삽입하고자 한다. 정렬된 상태를 유지하면서 target이 삽입될 수 있는 index를 구하라. 만약, 배열 내에 target과 같은 값이 있다면 해당 index를 삽입 위치로 한다.
테스트케이스
- nums = {1, 3, 5, 6}
target = 5
output: 2 - nums = {1, 3, 5, 6}
target = 2
output: 1 - nums = {1, 3, 5, 6}
target = 7
output: 4
해설 및 풀이
- 주어진 배열의 처음과 끝, 이를 기반으로 중앙값을 정한다.
- 중앙값이 target보다 크다면 시작~중앙을 탐색한다
- 중앙값이 target보다 작다면 중앙~끝을 탐색한다.
자바 구현코드
class Solution {
public int searchInsert(int[] nums, int target) {
int begin = 0;
int end = nums.length-1;
int mid = (end-begin)/2 + begin;
while(end-begin >= 2) {
if(nums[mid] < target) {
begin = mid;
mid = (end-begin) / 2 + begin;
} else {
end = mid;
mid = (end - begin) / 2 + begin;
}
}
if(nums[mid] < target) {
if(nums[end] < target) {
return end+1;
} else {
return end;
}
} else {
if(nums[begin] < target) {
return begin+1;
} else {
return begin;
}
}
}
}
https://leetcode.com/problems/search-insert-position/
반응형
'Dev > 알고리즘' 카테고리의 다른 글
프로그래머스 - 신고 결과 받기 (0) | 2022.05.22 |
---|---|
[리트코드/자바] 278. First Bad Version (0) | 2022.04.14 |
[리트코드/자바] 704. Binary Search (0) | 2022.04.14 |
[리트코드/자바] 146. LRU Cache (0) | 2022.03.29 |