[프로그래머스/Javascript] 24. 정수 내림차순으로 배치하기

현수·2022년 1월 17일
post-thumbnail

문제설명

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


제한조건

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

입출력예시

nreturn
118372873211

풀이

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

설명

역시 22, 23번과 방법은 유사하다. String으로 변환 후 각 자리 수를 요소로 갖는 배열로 .split() 해주고 다시 모두 숫자로 변환해준다. 그리고 .sort()를 이용해 내림차순으로 정렬해주는데, .sort()는 기본적으로 일반 실행 시 문자열을 유니코드 포인트 값에 따라 정렬하지만, 추가적으로 compareFunction(a, b)도 제공하고 있다. 이 때 compareFunction(a, b)이 0보다 큰 경우, ba보다 낮은 인덱스로 소트한다. 즉 내림차순으로 정렬할 때는 수가 클 수록 낮은 인덱스에 위치할 수 있게 .sort((a,b)=>b-a)를 해주면 되는 것이다. 이 후 .join()으로 문자열로 합쳐준 뒤 전체 코드를 감싸는 +()를 사용해 숫자로 변환해준다.

profile
언젠간 되겠지!

0개의 댓글