코테/프로그래머스

[프로그래머스/Lv. 0] 특이한 정렬

imname1am 2023. 2. 16. 12:29
반응형

목차

     

     

    뭔가 풀 수 있을 거 같은데 내가 구현을 못 하는 그런..

    그래서 다른 분 답을 보고 해결했다...

     

    [프로그래머스] 특이한 정렬(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

     

    반응형