programmers

[JAVA] 특이한 정렬

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

import java.util.Arrays;

class Solution {
    public int[] solution(int[] numlist, int n) {
        int[] answer = new int[numlist.length];
        int[] res = new int[numlist.length];
        // n값으로 빼주기
        for(int i=0; i<numlist.length;i++){
            res[i]=Math.abs(numlist[i]-n);
        }
        Arrays.sort(res);
        Arrays.sort(numlist);
        //초기값
        for(int i=0; i<numlist.length;i++){
          if(res[0]==Math.abs(numlist[i]-n)){
              answer[0]=numlist[i];
          }
        }
        //1~numlist.length 값
        for(int i=1; i<numlist.length;i++){
            for(int j=0; j<numlist.length;j++){
                if(res[i]==Math.abs(numlist[j]-n)&&answer[i-1]!=numlist[j]){
                    answer[i]=numlist[j];
                }
            }
        }
        return answer;
    }
}