정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
먼저 주어진 arr 배열에서 최솟값 min을 구하고, 최솟값 개수를 뺀 길이를 answer길이로 지정한다. 여기서 answer 길이가 가변적인 길이가 되기 때문에 ArrayList를 선언하여 나중에 answer에 넣어준다.
ArrayList 선언
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
int min = arr[0];
for(int i=1; i<arr.length; i++){
if(min > arr[i]){
min = arr[i];
}
}
ArrayList<Integer> list = new ArrayList<>();
for(int i=0; i<arr.length; i++){
if(min != arr[i]){
list.add(arr[i]);
}
}
int[] answer = new int[list.size()];
for(int i=0; i<list.size(); i++){
answer[i] = list.get(i);
}
if(answer.length == 0){
answer = new int[1];
answer[0] = -1;
return answer;
}else{
return answer;
}
}
}
빈 배열일 경우 -1을 채워 리턴을 앞쪽에 작성해주기
if(answer.length == 0){
answer = new int[1];
answer[0] = -1;
return answer;
}else{
return answer;
}
위 코드 대신에
if(arr.length == 1){
int[] answer = {-1};
return answer;
}