프로그래머스 제일 작은 수 제거하기
풀이
- 소요 시간 약 7분
내가 푼 2가지 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.*;
class Solution {
public static int[] solution(int[] arr) {
ArrayList<Integer> list = new ArrayList<>();
PriorityQueue<Integer> queue = new PriorityQueue<Integer>();
for(int num : arr){ list.add(num); queue.add(num); }
list.remove(list.indexOf(queue.poll()));
if(list.size() == 0) list.add(-1);
return list.stream().mapToInt(Integer::intValue).toArray();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
public static int[] solution(int[] arr) {
int min = arr[0];
int idx = 0;
if(arr.length==1) return new int[]{-1};
int answer[] = new int[arr.length-1];
for(int i=1; i<arr.length; i++){
if(arr[i] <= min ){
min = arr[i];
idx = i;
}
}
for(int i=0; i<idx; i++) answer[i] = arr[i];
for(int i=idx+1; i<arr.length; i++) answer[i-1] = arr[i];
if(answer.length == 0) answer[0] = -1;
return answer;
}
}