Algorithm/프로그래머스

[프로그래머스 js] 정수 내림차순으로 배치하기

양원준 2023. 10. 26. 11:12
728x90

문제설명

 

  • 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

 

 

 

제한조건

 

  • n은 1이상 8000000000 이하인 자연수입니다.

 

 

 

입출력예

 

 

  • 118372 => 873211

 

 

 

나의 답

 

function solution(n) {
    var answer = [];
    
    answer = n.toString().split('').map(Number)
    
    for(var i=0; i<answer.length; i++){
        for(var j=i+1; j<answer.length; j++){
            if(answer[i] < answer[j]){
                [answer[i],answer[j]] = [answer[j],answer[i]]
            }
        }
    }
    
    return Number(answer.join(''));
}

이런식의 문제가 나올때마다 sort를 사용해서 다른 방식으로 해보았따₩!~!

배열 정수로 만든 뒤 반복문을 이용해서 하나씩 정렬해나가는 방식

구조분해 할당으로 작은수와 큰수 위치를 바꿔 수가 크면 앞으로 switch 되게 바꾸었따

 

 

 

 

 


다른사람들 답

 

function solution(n) {
  const newN = n + "";
  const newArr = newN
    .split("")
    .sort()
    .reverse()
    .join("");

  return +newArr;
}

 

문자열로 sort 함수를 사용한거 같다

확실히 보기는 함수를 이용해서 하는게 편하긴 한듯 하다

 

 

 

 

 

 

728x90