문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
- n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
n | return |
118372 | 873211 |
답
function solution(n) {
var answer = '';
//정수 문자로 변경
let list = n.toString();
//자리 수 비교를 위해 나누기
let array = list.split('')
//내림차순으로 정렬
array.sort(function(a, b) {
return b-a;
})
//합치기
array = array.join('');
//정수로 변경
answer = parseInt(array);
console.log(answer)
return answer;
}
//아래는 문자로 변환 하지 않는 방법 훨~씬 빠르다. 0.0x ms와 4.xx ms
function solution(n) {
var nums =[];
do{
nums.push(n%10);
이부분에서 Math를 쓰지 않으면 소수점 아래 수가 들어와서 오류가 난다.
n=Math.floor(n/10);
} while(n>0)
return nums.sort((a,b)=>b-a).join('')*1;
}
'알고리즘 > JS' 카테고리의 다른 글
나누어 떨어지는 숫자 배열 (0) | 2022.01.17 |
---|---|
콜라츠 추측 (0) | 2022.01.17 |
이상한 문자 만들기 (0) | 2022.01.17 |
서울에서 김서방 찾기 (0) | 2022.01.17 |
내적 구하기 (0) | 2022.01.17 |