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

Hyunji·2022년 1월 17일
0

알고리즘

목록 보기
9/51
post-thumbnail

문제설명

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

제한조건

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

입출력 예시

nreturn
118372873211

문제풀이

첫 번째 풀이
function solution(n) {
//    var answer = 0;
    let nbr = n.toString();
//    console.log(nbr);
    let nbr2 = nbr.split("");
//    console.log(nbr2);
    nbr2.sort(function(a,b) {
        return b - a;
    });
//    console.log(nbr2);
    let convert = Number(nbr2.join(''));
//    console.log(convert);
    return convert;
}
두 번째 풀이
function solution(n) {
//    var answer = 0;
    let answer = Number(n.toString().split("").sort((a,b) => b - a).join(''));
    return answer;
풀이방법
- 숫자를 문자열로 변경하고 
- .split() 을 이용해 하나씩 나눠준 뒤
- .sort() 를 이용해서 내림차순으로 정렬해주었다
- 그리고 .join() 이용해서 배열의 요소들을 하나의 문자열로 만든다
- Number() 을 이용해 문자열을 숫자로 변환
사용한 함수

.split()

  • separator로 ""(length가 0인 문자열)을 전달하면, 문자열을 각각의 문자별로 잘라서, 한 글자씩(공백 포함) 배열에 저장하여 리턴한다.

.sort()

  • 배열을 정렬할 때 사용한다.
  • .sort((a,b) => a - b); // 오름차순
  • .sort((a,b) => b - a); // 내림차순
  • 화살표 함수를 이용하면 .sort() 함수를 더 간단하게 사용할 수 있다

.join()

  • join() 메서드는 배열의 모든 요소를 연결해 하나의 문자열로 만든다.
  • arr.join([separator])
  • separator는 매개변수로, 배열의 각 요소를 구분할 문자열이다.
    이 구분자는 필요한 경우 문자열로 변환되고, 생략하면 배열의 원소들의 쉼표로 구분된다.

출처: https://hianna.tistory.com/377
출처: https://kkumalog.tistory.com/76
출처: https://yeoncoding.tistory.com/46


다른 사람의 풀이방법

function solution(n) {
    // 문자풀이
    return parseInt((n+"").split("").sort().reverse().join(""));
}

비슷한 방법으로 풀었는데 변수를 선언해주지 않고 바로 return 해주었다
다른 방법은 .sort() 정렬해준 뒤 .reverse() 메소드를 이용해 배열을 거꾸로 뒤집어 주었다.

사용한 함수

.reverse()

  • 배열의 데이터를 거꾸로 만들어주는 메소드
profile
성장중인 개발자

0개의 댓글