정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
import java.util.Arrays;
public class SmallerNumberSearch {
public static void main(String[] args) {
SmallerNumberSearch sns = new SmallerNumberSearch();
int[] arr = {5, 1, 2, 6, 8};
int[] solution = sns.solution(arr);
for (int i : solution) {
System.out.println("i = " + i);
}
}
public int[] solution(int[] arr) {
int leng = arr.length;
if(leng == 1) return new int[] {-1};
int[] cloneArr = arr.clone();
Arrays.sort(cloneArr);
int find = Arrays.binarySearch(cloneArr, cloneArr[0]);
int key = cloneArr[find];
int[] answer = new int[leng-1];
int idx = 1;
for(int i : arr){
if(i==key) continue;
answer[(idx++)-1] = i;
}
return answer;
}
}
binarySearch를 사용해보고 싶어서 풀어본 문제