[프로그래머스] 정수 내림차순으로 배치하기 in JavaScript

hyocho·2022년 6월 16일
0

코딩테스트

목록 보기
12/45


2022년 7월 5일 내용 수정 / 추가

✅문제

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

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

✍문제풀이

주어진 정수 n을 split("")로 한 자리씩 끊어 배열로 만들고, sort를 사용하여 내림차순 정렬을 하면 될 것 같았다.

👉 여기저기 부족한 과정이 너무 많았던 처음 발상.

/*
n을 배열로 만든 후,
(정수 > 문자열 > 배열의 차례를 거쳐야한다.)
sort 로 정렬을 하고 reverse로 거꾸로 정렬
(배열 > 문자열(join) > 정수(Number)의 차례를 거쳐 답안 제출)
*/
function solution(n){
  let arr = []
  let answer = 0;
  arr = (n+'').split('');
  answer = Number(arr.sort().reverse().join(''));
  return answer;
}
  1. 숫자문자열로 변환
  2. split으로 배열 만들기
  3. reverse로 뒤집기
  4. join("")로 다시 문자열로 변환
  5. Number로 숫자로 변환하여 반환

메서드체인에 대해서 알아보자.

✔️참고할 좋은 코드

function solution(n) {
    var arr = (n+"").split('');
    arr.sort(function(a, b) {
        return b-a;
    });
    var answer = Number(arr.toString().replace(/\,/g,''));
    return answer;
}

📝TIL

  • arr.join([separator]) : 배열의 모든 요소를 연결해 하나의 문자열로 만듭니다. 배열의 각 요소를 구분할 문자열을 지정합니다. 이 구분자는 필요한 경우 문자열로 변환됩니다. 생략하면 배열의 요소들이 쉼표로 구분됩니다. separator가 빈 문자열이면 모든 요소들이 사이에 아무 문자도 없이 연결됩니다.
  • Number

문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12933
참고 사이트 :
1. https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/join
2. https://dudmy.net/javascript/2015/11/16/javascript-sort/
3.https://gogumaguma.tistory.com/338
3.정수를 문자열로 바꾸는 방법 : https://im-designloper.tistory.com/58

profile
기록하는 습관을 기르고 있습니다.

0개의 댓글