문제
문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 사항
- n은 1이상 8000000000 이하인 자연수입니다.
풀이
나의 코드
function solution(n) {
return Number(String(n).split("").sort((a, b) => b - a).join(""));
}
설명
- n을 문자열로 변환한 후 각각의 요소를 잘라 배열을 만들었다. sort 함수를 응용하여 내림차순으로 정렬한 후, join 함수를 이용해 하나로 이어 붙였다.
- 위의 값을 숫자 형태로 변환한 후 반환했다.
- sort()
- 배열을 정렬한 후 반환하는 함수 (원래 배열이 변경됨에 주의)
- compareFunction이 없으면 유니코드 포인트 순서로 정렬됨에 주의해야 함.
- 숫자 배열을 오름차순으로 정렬할 때 compareFunction
- 내림차순으로 정렬할 때 compareFunction
- join()
- 배열의 모든 요소를 연결해 하나의 문자열을 반환하는 함수
- 옵션으로 seperator를 받는데, 생략하면 배열의 요소들이 쉼표로 구분됨. 빈 문자열이라면 모든 요소들의 사이에 아무것도 없는 상태로 붙어서 연결됨.