반응형
목차
뭔가 풀 수 있을 거 같은데 내가 구현을 못 하는 그런..
그래서 다른 분 답을 보고 해결했다...
import java.util.*;
class Solution {
public int[] solution(int[] numlist, int n) {
List<Integer> list = new ArrayList<>();
Arrays.sort(numlist);
for(int num : numlist) list.add(num);
list.sort((s1, s2) -> Integer.compare(Math.abs(s2 - n), Math.abs(s1 - n)));
Collections.reverse(list);
return list.stream().mapToInt(num -> num).toArray();
}
}
✔ list.sort((s1, s2) -> Integer.compare(Math.abs(s2 - n), Math.abs(s1 - n));
정렬 기준을 각 숫자에서 n을 뺀 절댓값 순으로 바꿔주셨다고 한다..
(리스트 정렬 시, Comparator를 Lamda로 직접 구현)
✔ Collections.reverse(list);
내림차순 정렬을 먼저 해주는 이유는
처음부터 오름차순 정렬을 하면 절댓값이 같은 숫자들의 위치가 원하는 대로 출력되지 않기 때문이라고 한다.
✔ list.stream().mapToInt(num -> num).toArray();
.stream()
: 스트림 객체 생성.mapToInt(num -> num)
: int로 매핑 (람다식을 사용한 자동 언박싱).toArray()
: 스트림을 배열로 변환
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 0] 옹알이 (1) (0) | 2023.02.17 |
---|---|
[프로그래머스/Lv. 0] 모스부호 (1) (0) | 2023.02.16 |
[프로그래머스/Lv. 0] 이진수 더하기 (0) | 2023.02.16 |
[프로그래머스/Lv. 0] 겹치는 선분의 길이 (0) | 2023.02.14 |
[프로그래머스/Lv. 0] 저주의 숫자 3 (0) | 2023.02.14 |