정수 내림차순으로 배치하기

SOMEmo·2022년 5월 30일
0
post-thumbnail

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

제한 조건
n은 1이상 8000000000 이하인 자연수입니다.
입출력 예

nreturn
118372873211

<내 풀이>

function solution(n) {
    
    arr = String(n).split("");
    let arr2=[];
    arr.map((a)=>{arr2.push(parseInt(a))});
    let str = "";
    let arr3 = [];
    arr3 = arr2.sort(function(a, b){
              return b-a;
    })
    console.log(arr3);
    arr3.map((a)=>{str=str+a});
    
    
    var answer = 0;
    answer = parseInt(str);
    return answer;
}

<다른 사람 풀이1>

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

  return +newArr;
}

join() 메서드는 배열의 모든 요소를 연결해 하나의 문자열로 만듭니다.

<다른 사람 풀이2>

function solution(n) {
    // 문자풀이
    return parseInt((n+"").split("").sort().reverse().join(""));
}

<다른 사람 풀이3>

function solution(n) {
    //숫자가 분명히 더 빠름
    var nums =[];
    do{
        nums.push(n%10);
        n=Math.floor(n/10);
    } while(n>0)

    return nums.sort((a,b)=>b-a).join('')*1;
    //문자는 느림
    return (n+"").split('').sort((a,b)=>b-a).join('')*1;
}

0개의 댓글