함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
n은 1이상 8000000000 이하인 자연수입니다.
n | return |
---|---|
118372 | 873211 |
function solution(n) {
var arr = (n + '').split('')
arr.sort((a, b) => b - a)
return parseInt(arr.join(''))
}
이 문제도 간단하게 풀 수 있었다. 파이썬으로 주로 문제를 풀었다보니 파이썬 기준으로 어떻게 풀지 생각이 먼저 났던것 같은데, 디테일이 다른 것만 뺴면 JS에도 파이썬과 같은 역할을 하는 함수가 똑같이 있는 경우가 많은 것 같다. 여기서도 join()
함수의 경우 똑같이 존재해서 활용하기 수월했다. 먼저 n+''
를 통해 문자열로 만들고 그것을 한글자씩 배열로 만들기 위해 split('')
을 사용했다. 그리고나서 내림차순으로 정렬하기 위해 sort()
를 활용하고 배열을 다시 바꾸기 위해 join('')
을 사용해서 다시 스트링으로 만들고 그걸 다시 parseInt
로 숫자로 바꾸어 리턴했다.
function solution(n) {
const newN = n + ''
const newArr = newN
.split('')
.sort()
.reverse()
.join('')
return +newArr
}
사실 거의 같은 방식이었지만 다른 점은 reverse()
를 사용했다는 것과 마지막에 +newArr
처럼 표현한 것이다. reverse()
는 배열의 순서를 뒤바꿔서 정렬하고, 문자열앞에 +를 붙히면 숫자로 바뀐다..! 잘 활용하면 유용할 것 같다.