[Programmers] 코딩테스트 입문 120880. 특이한 정렬

이지현·2023년 4월 10일
0

Algorithm

목록 보기
70/81
post-thumbnail

✔️ Problem URL

특이한 정렬


✔️ Problem

정수 n을 기준으로 n과 가까운 수부터 정렬하려고 합니다. 이때 n으로부터의 거리가 같다면 더 큰 수를 앞에 오도록 배치합니다. 정수가 담긴 배열 numlist와 정수 n이 주어질 때 numlist의 원소를 n으로부터 가까운 순서대로 정렬한 배열을 return하도록 solution 함수를 완성해주세요.


✔️ Code

import java.util.*;

class Solution {
    public Object[] solution(int[] numlist, int n) {
        List<Integer> answer = new ArrayList<Integer>();
        final Integer fix = new Integer(n);
        
        for(int i : numlist) answer.add(i);
        
        Collections.sort(answer, new Comparator<Integer>() {
            @Override
            public int compare(Integer a, Integer b) {
                if(Math.abs(a-fix)!=Math.abs(b-fix)) return Math.abs(a-fix)-Math.abs(b-fix);
                else return b-a;
            }
        });
        return answer.toArray();
    }
}
profile
2023.09 ~ 티스토리 이전 / 2024.04 ~ 깃허브 블로그 이전

0개의 댓글