#나의 풀이

function solution(n) {
    var answer = String(n).split("").map(e => Number(e)).sort((x, y) => y - x).join("");
    answer = Number(answer)
    return answer;
}

 

#다른 방법

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

  return +newArr;
}

숫자풀이

function solution(n) {
    // 숫자풀이
    var r = 0, e = 0, arr = [];

    do {
        e = n%10;
        
        // 정렬
        if (arr.length == 0) arr.push(e);
        else for (var i=0, len=arr.length; i<len; i++) {
            if (arr[i] <= e) { arr.splice(i,0,e); break; }
            if (i == len-1) arr.push(e);
        }
    } while (n = Math.floor(n/10), n>0);

    return parseInt(arr.join(""));
}
  • *다른 풀이는 문자열로 변환 후 풀이가 많고 거의 비슷하다.
  • *숫자풀이는 문제를 보고 생각해 볼 때 문자열 풀이보다 좀 복잡할 것 같아서 생각해 보지 않았는데 구현한 코드가 있어서 참고차 적어보았다. (런타임은 오히려 문자열이 조금 더 빠른 것 같다.)

'코딩테스트 > Javascript' 카테고리의 다른 글

프로그래머스 스킬체크 레벨 1  (0) 2021.05.13
최대공약수와 최소공배수  (0) 2021.03.08
자릿수 더하기  (0) 2021.01.24
자연수 뒤집어 배열로 만들기  (0) 2021.01.23
이상한 문자 만들기  (0) 2021.01.18

+ Recent posts