class Solution {
public int[] solution(int[] arr) {
int[] answer = new int[arr.length - 1];
int min = Integer.MAX_VALUE;
if(arr.length == 1) {
answer = new int[1];
answer[0] = -1;
} else {
for(int i = 0; i < arr.length; i++) {
if(arr[i] < min) {
min = arr[i];
}
}
int index = 0;
for(int i = 0; i < arr.length; i++) {
if(arr[i] != min) {
answer[index] = arr[i];
index++;
}
}
}
return answer;
}
}
제일 작은 수 1개만 제거하면 되므로 answer 배열을 arr 길이에서 1을 뺀 만큼만 생성한다. 배열에서 가장 작은 수를 구해야 하므로 Integer.MAX_VALUE로 min 변수를 초기화해준다. arr의 길이가 1일 때는 제일 작은 수를 제거하면 빈 배열이 되는 경우이므로 answer를 size가 1인 배열로 생성하고 0번째에 -1을 할당한다. 그 외에는 가장 작은 수를 제거해야 하는 경우이므로 arr을 for문을 돌려서 min값을 구한다. 그런다음 다시 arr에 대하여 for문을 돌려서 arr의 i번째 요소가 min이 아닌 경우에는 answer에 값을 할당해준다. 그렇게 되면 answer에는 제일 작은 수만 제거된 상태가 된다.