import java.util.stream.IntStream;
class Solution {
public int[] solution(int[] numlist, int n) {
return IntStream.of(numlist).boxed().sorted((num1, num2) -> {
int num1Abs = Math.abs(num1 - n);
int num2Abs = Math.abs(num2 - n);
if (num1Abs == num2Abs) return num1 > num2 ? -1 : 1;
else return num1Abs - num2Abs;
}).mapToInt(Integer::intValue).toArray();
}
}
람다식을 사용해보고 싶어서 처음으로 람다식을 이용해 문제를 풀어보았다.
(내가 아는한...)
배열과 정수가 주어지고 정수에 가까운 수부터 정렬하는 문제이다.
이를 위해 절대값을 구해 절대값을 비교하여 절대값이 같은 경우에는 큰 숫자가 오도록 정렬하였다.