알고리즘/JS

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

namu445 2022. 1. 17. 13:48

문제 설명

함수 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