문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
n | return |
---|---|
118372 | 873211 |
<내 풀이>
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;
}