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

morecodeplease·2024년 3월 1일
0

프로그래머스

목록 보기
11/23
post-thumbnail

🌭 문제 설명

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

🍗 제한 사항

  • n1이상 8000000000 이하인 자연수입니다.

🎁 입출력 예시


😎 나의 풀이

function solution(n) {
  let answer = parseInt((n + "").split('').sort((a, b) => b - a).join("")); // n + ""
  return answer;
}

console.log(solution(118372)); // 출력 : 873211
  1. (n + "")로 문자열로 만들어주고 split('')으로 배열로 반환한다.
  2. 반환한 배열을 sort()로 내림차순으로 정렬을 하고 join('')으로 문자열로 반환한다.
  3. parseInt()로 정수로 바꿔줘서 return한다.

🧵 다른 풀이

function solution(n) {
  const newN = n + "";
  const newArr = newN
    .split("")
    .sort()
    .reverse()
    .join("");

  return +newArr;
}
  1. (n + "")로 문자열로 만들어주고 newN에 대입한다.
  2. newNsplit('')으로 배열로 만들어주고 sort()로 오름차순 정렬한다.
  3. 오름차순한 정렬을 reverse()로 거꾸로 뒤집어주고(내림차순) join('')으로 문자열로 만들어준다.
  4. return 값에 +을 앞에 붙여서 숫자로 바꿔주고 return한다!

나도 나름 한줄로 잘 풀었다고 생각했는데 다른 풀이를 보니 +을 붙여서 숫자로 바꾸는법과 reverse()로 그냥 배열을 뒤집는 방법도 좋은 방법인 것 같다.

profile
Everyday's a lesson

0개의 댓글