프로그래머스 정수 내림차순으로 배치하기 (javascript)

이진우·2022년 7월 10일
0
post-custom-banner

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

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

입출력 예
n
118372
return
873211

1. 정답을 문자열로 바꾸어서 for반복문으로 하나하나씩 잘라서 배열에 담아준다.

2. sort()메소드로 내림차순으로 정렬한다.

3. 마지막 return에서 ar배열을 join메소드로 하나의 문자로 만들고 parseInt를사용해 숫자로 바꿔서 리턴해준다.

function solution(n) {
    let answer = `${n}`;
    let ar = [];
    for (let i=0; i<answer.length; i++){
        ar.push(answer.substring(i,i+1))
        ar.sort((a,b)=>b-a)
    }
    return parseInt(ar.join(''))
}

이번문제를 통해 알게된점 3

  1. 숫자열을 문자열로 바꿀때 .toString() 말고도 ${변수} or 변수+''이렇게도 쓸수 있다는점!!
    뭔가 하나의 문제를 해결할때 풀이법이 많아서 가끔 의아할때도 많다 🤔
  2. 처음에 1번에서의 방법을 다써서 콘솔에 찍어도 123456이렇게만 나와서 '문자열이 된게 맞나..?' 라는 생각을 했었는데 console.log(typeof answer) 이라는 typeof 를 앞에 붙히고 콘솔에 찍으면 타입이 나오는것이었다...!!(알려주신분 감사합니다 ^~^)

다른사람의 풀이

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

음................또 이렇게 보니 내코드가 너무 길구나.........
코드길이를 떠나서도 효율성이 이코드가 훨~~~씬 빠르게 나온다....
나도 이렇게 짧고 효율있는 코드를 만들 날이 올때까지..🤓👊🏻

profile
초보개발자의 개발일기
post-custom-banner

0개의 댓글