1. Binary Search

배열 첫 index = L

배열 마지막 index = R

pivot = (L+R)/2

int search(int[] nums, int target) {
	int left = 0;
	int right = num.length-1;

	while(left<=right) {
		int pivot = (left+right)/2
		if(nums[pivot]==target) {
			return pivot;
		} else if(nums[pivot]<target) {
			left = pivot + 1;
		} else {
			right = pivot -1;
		}

	return -1; //target을 못찾았을경우
}
  1. move zereos

키워드 : 0이 아닌 숫자를 왼쪽으로 옮긴다.

0인 index와 0이 아닌 index를 서로 swap 한다.

void moveZereos(int[] nums] {
	int wIdx = 0;
	for(int idx=0; idx<nums.length; idx++) {
		if(num[idx] != 0) {
			swap(nums[widx], nums[idx]);
			wIdx++;
		}
}
  1. Find Pivot Index

sliding 개념

724번

int pivotIndex(int[] nums) {
	int sum = 전체합(nums);
	int leftSum = 0;
	int rightSum = 0;

	int pastPivotNum = 0;

	for(int idx=0; idx<nums.length; idx++) {
		int num = nums[idx];
		rightSum = rightSum - num;
		leftSum = leftSum + pastPivotNum;

		if(leftSum == rightSum) {
			return idx;
		}
		
		pastPivotNum = num;

		}

		return -1;
}