[프로그래머스/Lv. 0] 특이한 정렬
목차
뭔가 풀 수 있을 거 같은데 내가 구현을 못 하는 그런..
그래서 다른 분 답을 보고 해결했다...
[프로그래머스] 특이한 정렬(Java)
List.sort()
velog.io
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로 직접 구현)
Java - 리스트 정렬, 3가지 방법
자바에서 ArrayList 등, List를 정렬하는 3가지 방법을 소개합니다. Collections.sort(list)는 인자로 전달된 list를 오름차순으로 정렬합니다. 내림차순으로 정렬하려면 sort(list, Collections.reverseOrder())처럼,
codechacha.com
✔ Collections.reverse(list);
내림차순 정렬을 먼저 해주는 이유는
처음부터 오름차순 정렬을 하면 절댓값이 같은 숫자들의 위치가 원하는 대로 출력되지 않기 때문이라고 한다.
[Java] ArrayList 정렬하기 (오름차순, 내림차순, 사용자 정의)
Collections.sort() 오름차순으로 정렬하기 내림차순으로 정렬하기 대소문자 구분없이 정렬하기 List.sort() - Java 8 이후 오름차순으로 정렬하기 내림차순으로 정렬하기 대소문자 구분없이 정렬하기 사
hianna.tistory.com
✔ list.stream().mapToInt(num -> num).toArray();
.stream()
: 스트림 객체 생성.mapToInt(num -> num)
: int로 매핑 (람다식을 사용한 자동 언박싱).toArray()
: 스트림을 배열로 변환
Java에서 스트림을 배열로 변환
이 게시물은 Java에서 스트림을 어레이로 변환하는 방법에 대해 설명합니다. 1. 변환 stream 에게 T[] Java 스트림은 다음을 제공합니다. toArray() 스트림 요소를 포함하는 어레이을 반환하는 메서드입
www.techiedelight.com