import java.util.*;
import java.util.stream.Collectors;
class Solution {
public int[] solution(int[] arr) {
List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
Arrays.sort(arr);
list.remove(list.indexOf(arr[0]));
if (list.size() <= 0) return new int[]{-1};
return list.stream().mapToInt(i->i).toArray();
}
}
- List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList()); -
이전 문제에서 정리했기에 이제는 알아볼 수 있다.
파라미터로 받은 arr을 ArrayList로 변환 후 list에 할당한다.
- Arrays.sort(arr) -
파라미터로 입력받은 arr을 오름차순으로 정렬해준다.
- list.remove(list.indexOf(arr[0])) -
list.indexOf(arr[0])
위에서 arr이 오름차순으로 정렬되었기 때문에
arr[0]는 배열의 가장 작은 값이다.
list의 가장 작은 값과 arr배열의 가장 작은 값은 동일하기에
list.indexOf(arr[0])가 실행되면
list배열의 가장 작은 값의 index가 반환되게 되고
list.remove()가 해당 index를 삭제하게 된다.
- if (list.size() <= 0) return new int[]{-1}; -
만약 list배열의 크기가 0보다 작거나 같으면
-1만이 값으로 있는 새로운 배열을 리턴한다.
- return list.stream().mapToInt(i->i).toArray(); -
IntegerType list를
stream.mapToint()함수를 사용해
int type으로 변환 후 다시 stream에서 toArray해준 후 반환
stream에 대한 이해도가 조금 증가했다.
'Plo Algorithm' 카테고리의 다른 글
프로그래머스 Lv1 하샤드 수 (0) | 2022.03.16 |
---|---|
프로그래머스 Lv1 콜라츠 추측 (0) | 2022.03.16 |
프로그래머스 Lv1 정수 제곱근 판별 (0) | 2022.03.16 |
프로그래머스 Lv1 정수 내림차순으로 배치하기 (0) | 2022.03.16 |
프로그래머스 Lv1 자연수 뒤집어 배열로 만들기 (0) | 2022.03.16 |