https://programmers.co.kr/learn/courses/30/lessons/12935
풀이
배열을 차례대로 비교해서 작은 수(tmp)의 위치를 position에 저장해둔다.
배열끝까지 반복문이 끝나고나면 해당 위치의 원소를 삭제한다...는 삭제할수 없으니까
해당 위치의 원소가 아닌 배열들만 list에 add한다.
list 크기가 0 이면 배열에 -1을 넣어 리턴한다.
import java.util.ArrayList;
class Solution {
public int[] solution(int[] arr) {
ArrayList<Integer> list = new ArrayList<> ();
int tmp = arr[0];
int position = 0;
for (int i = 0; i<arr.length ; i++){
if (arr[i]< tmp){
tmp = arr[i];
position = i;
}
}
for (int i=0;i<arr.length;i++){
if(i!=position) list.add(arr[i]);
}
int[] answer;
if(list.size() == 0){
answer = new int[1];
answer[0] = -1;
}
else{
answer = new int[list.size()];
for (int i=0;i<list.size();i++){
answer[i]= list.get(i);
}
}
return answer;
}
}
다른사람풀이
확실히 스트림을 사용하면 코드의 가독성은 좋아지는 것 같아서 가져와봤다.
min()으로 최소값을 구해서 filter()로 최소값을 제외한 원소를 리턴해준다.
import java.util.Arrays;
import java.util.stream.Stream;
import java.util.List;
import java.util.ArrayList;
class Solution {
public int[] solution(int[] arr) {
if (arr.length <= 1) return new int[]{ -1 };
int min = Arrays.stream(arr).min().getAsInt();
return Arrays.stream(arr).filter(i -> i != min).toArray();
}
}
'Algorithm & Data Structure > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 : 두 개 뽑아서 더하기 (0) | 2022.01.31 |
---|---|
[Java] 프로그래머스 : 자연수 뒤집어 배열로 만들기 (0) | 2022.01.31 |
[Java] 프로그래머스 : 같은 숫자는 싫어 (0) | 2022.01.31 |
[JAVA] 프로그래머스 : 나누어 떨어지는 숫자 배열 (0) | 2022.01.31 |
[JAVA] 프로그래머스 : 자릿수 더하기 (0) | 2022.01.21 |