알고리즘/문제를 풀어보쟈

정수 내림차순으로 정렬하기

섕걍 2022. 3. 10. 23:09

오랜만에 푸니까 넘 재미따 


문제 해결 

function solution(n) {
    let answer = 0;
    const numArray = String(n).split("").sort((a,b)=>b-a);
    answer = Number(numArray.join(""));
    return answer;
}

1. 숫자를 받아와서 배열로 변환하려했다.

2. 이때 숫자는 배열로 변환할 수 없으므로 String으로 타입을 변경해준다.

3. split()메서드를 이용String을 지정한 구분자로("")로 배열로 변경해준다.

4. sort()를 이용해 큰 순서로 배열해준다.

5. join()을 이용해 배열의 모든 요소를 연결해 하나의 문자열로 변경한다. ("")로 연결해준다.

 

 


개선점

1. String(n).split("")은 배열로 변환된것을 직관적으로 알 수 없음.

      => 모든 숫자를 받아와 string으로 변환해 배열에 담아준다. 

[...n.toString()]

2. 메소드 체이닝으로 식을 더 간결하게 표현 할 수 있다.

function solution(n) {
    return +(String(n).split("").sort((a,b)=>b-a).join(""));
}

3. String,Number로 타입변환하는 방법

String(n)
n.toString()

Number(s)
parseInt(s)
+s