본문 바로가기

Sparta x 이노베이션 캠프/코딩테스트

TIL) 코딩테스트: 정수 내림 차 순으로 배열하기

반응형
  • 정수 내림차순으로 배치하기
  • 문제 설명

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

    제한 조건

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

    나의 이

    n을 문자로 바꾸고 스프릿해서 내림차순으로 바꾸어 주어야겠다고 생각했다.

     

    1. 첫번째 시도

function solution(n) {
    var answer = 0;
    n = n.toString().split('').sort(function(a, b) {
        return b - a;    
    }).join().replace(/,/g,"");
    console.log(n) //숫자를 문자열로 변환 후 쪼개기까지 확인
    answer = parseInt(n)
    return answer;
}

코드가 복잡함.

 

   2. 두번째

function solution(n) {
    var answer = 0;
    n = n.toString().split('').sort().reverse().join("");
    console.log(n) //숫자를 문자열로 변환 후 쪼개기까지 확인
    answer = parseInt(n)
    return answer;
}

다른 사람 답안을 보니 더 간단하게

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

return으로 parseInt를 반환해주고 n에 ""를 더해 문자열로 만들어줌. 리버스도 알고있었는데 저렇게 하면 더 간결하게 만들 수 있었다. 내가 할때는 왜인지 join("")이부분이 자꾸 오류가 나서 안되었는데 다시 잘 됨.

 

반응형