➰프로그래머스 : 특이한 정렬

Digeut·2023년 3월 24일
0

프로그래머스

목록 보기
28/164

❔문제설명

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

⚠️제한사항

1 ≤ n ≤ 10,000
1 ≤ numlist의 원소 ≤ 10,000
1 ≤ numlist의 길이 ≤ 100
numlist는 중복된 원소를 갖지 않습니다.

🤔아이디어

배열안의 값을 n으로 뺀 값이 작을수록 앞에 오도록 정렬을 해보자
뺀 값이 음수면 안되니까 절대값으로 생각해야 할것같은데...

❌틀린코드

import java.util.*;

class Solution {
    public int[] solution(int[] numlist, int n) {
        int[] answer = new int[numlist.length];
        List<Integer> list = new ArrayList<>();
        for(int num : numlist){
            list.add(num);
            for(int i = 0 ; i < list.length() ; i++){
                answer[i] = list[i] - n ; //절대값 비교 필요
            }
        }
        Array.sort(answer);
        return answer;
    }
}

🙄오류

❌틀린코드2

import java.util.Arrays;

class Solution {
    public int[] solution(int[] numlist, int n) {
        int[] answer = new int[numlist.length];
        int[] compare = new int[numlist.length];
        
        for(int i = 0 ; i < numlist.length ; i++){
            compare[i] = numlist[i] - n ;
        }
        Arrays.sort(compare);
        return compare;
    }
}

🙄오류2

절대값 설정을 해줘야하고... 뺀값인 compare을 return 했더니 numlist의 값으로 나오질 않네...

profile
개발자가 될 거야!

0개의 댓글