정수 내림차순으로 배치

문제

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

제한조건

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

풀이방향

  • 입력값을 나누고 정렬하는 방법을 찾아보자.

문제풀이

descendingOrder.js
1
2
3
4
5
function descendingOrder(n) {
return parseInt(n.toString().split('').sort().reverse().join(''));
}

export { descendingOrder };
descendingOrder.test.js
1
2
3
4
5
6
7
import { descendingOrder } from "../src/descendingOrder";

describe("descendingOrder", () => {
it("should return 873211 as the descending order of 118372", () => {
expect(descendingOrder(118372)).toBe(873211);
});
});

문제출처

  • 프로그래머스

다른 풀이

1
2
3
4
5
6
7
8
9
10
function solution(n) {
const newN = n + "";
const newArr = newN
.split("")
.sort()
.reverse()
.join("");

return +newArr;
}