[프로그래머스] 정수 내림차순으로 배치하기 - 자바스크립트

문제 설명

함수 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()는 배열의 순서를 뒤바꿔서 정렬하고, 문자열앞에 +를 붙히면 숫자로 바뀐다..! 잘 활용하면 유용할 것 같다.


Written by@[Ykss]
고이게 두지 않고 흘려보내는 개발자가 되자.

GitHubInstagramLinkedIn