알고리즘 풀이

항해99 2주차 알고리즘 풀이6

jann2 2021. 11. 10. 18:13

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

 

문제 설명

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

제한 조건

  • n은 1이상 8000000000 이하인 자연수입니다.

입출력 예

n return
118372 873211

 

문제분석

1. 118372를 문자배열로 변경해서 sort로 내림차순 배열해주기.

2. 배열을 하나의 문자열로 합친다음 숫자로 변경

 

문제풀이

function solution(n) {

 //자바스크립트가 동적타입이기 때문에 숫자에 ''를 더해주면 문자열로 변하게됨.(118372->'118372')

.split('')스플릿의 파라미터 안에 ''나 ""만 입력하게되면 '1','1','8','3','7','2'의 배열이 된다.

    var number = (n + '').split('')

    number.sort(function(a, b)  {

  return b - a; //내림차순으로 정렬('8','7','3','2','1','1')

});

    const str = number.join(''); //배열들을 하나의 문자열로 묶어준다.('873211')

    return +str; 문자열에 +를 붙여 숫자로 만들어줌(87311)

}

 

***

문자열을 합쳐주는 join함수

const str = 'a', 'b', 'c'

join(); => 'a, b, c'

join('-'); => 'a-b-c'

join('') => 'abc'